|
1400
|
Is it possible to define my values for sorting
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:Columns():Add("C1"):SortType := 6/*SortUserDataString*/
oG2antt:Columns():Add("C2")
oItems := oG2antt:Items()
h := oItems:AddItem("Cell 1")
oItems:SetProperty("CellData",h,0,"3.your extra data")
oItems:SetProperty("CellValue",h,1,"SortValue=3")
h := oItems:AddItem("Cell 1.1")
oItems:SetProperty("CellData",h,0,"1.your extra data")
oItems:SetProperty("CellValue",h,1," SortValue=1")
h := oItems:AddItem("Cell 1.2")
oItems:SetProperty("CellData",h,0,"5.your extra data")
oItems:SetProperty("CellValue",h,1," SortValue=5")
h := oItems:AddItem("Cell 1.3")
oItems:SetProperty("CellData",h,0,"2.your extra data")
oItems:SetProperty("CellValue",h,1," SortValue=2")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1399
|
I have multiple dropdown lists, that are depending on each other, that means that the values in dropdown list no. 2 is based on the users selection in dropdown list no 1. How can I do this
PROCEDURE OnEditOpen(oG2antt)
LOCAL oEditor
LOCAL oItems
LOCAL c,v
oItems := oG2antt:Items()
v := oItems:CellValue(oItems:FocusItem(),0)
c := oItems:CellCaption(oItems:FocusItem(),0)
oEditor := oG2antt:Columns:Item(1):Editor()
oEditor:ClearItems()
oEditor:AddItem(v,Transform(c,""))
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oEditor
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:EditOpen := {|| OnEditOpen(oG2antt)} /*Occurs when the edit operation starts.*/
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oColumn := oG2antt:Columns():Add("DropDownList")
oEditor := oColumn:Editor()
oEditor:EditType := 3/*DropDownListType*/
oEditor:AddItem(1,"First")
oEditor:AddItem(2,"Second")
oEditor:AddItem(3,"Third")
oG2antt:DrawGridLines := -1/*exAllLines*/
oG2antt:Columns():Add("DropDownList-Related"):Editor():EditType := 3/*DropDownListType*/
oItems := oG2antt:Items()
oItems:SetProperty("CellValue",oItems:AddItem(1),1,-1)
oItems:SetProperty("CellValue",oItems:AddItem(2),1,-1)
oItems:SetProperty("CellValue",oItems:AddItem(3),1,-1)
oItems:SetProperty("LockedItemCount",2/*exBottom*/,1)
h := oItems:LockedItem(2/*exBottom*/,0)
oItems:SetProperty("ItemDivider",h,0)
oItems:SetProperty("ItemDividerLineAlignment",h,2/*DividerTop*/)
oItems:SetProperty("CellEditorVisible",h,0,0/*exEditorHidden*/)
oItems:SetProperty("CellSingleLine",h,0,0/*exCaptionWordWrap*/)
oItems:SetProperty("CellValueFormat",h,0,1/*exHTML*/)
oItems:SetProperty("CellValue",h,0,"The drop down editor in the second column is filled during the <b>EditOpen event</b>, and the values are based on the selection on the first column.")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1398
|
Is it possible background color displayed when the mouse passes over an item
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Def")
oG2antt:SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,128 } ) , .F. ))
oG2antt:SetProperty("HotForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oItems := oG2antt:Items()
oItems:AddItem("Item A")
oItems:AddItem("Item B")
oItems:AddItem("Item C")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1397
|
Is it possible to magnify a specified date and apply a different background color

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oInsideZoom
LOCAL oItems
LOCAL hA,hB
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Tasks")
oChart := oG2antt:Chart()
oChart:DrawLevelSeparator := 0/*exLevelNoLine*/
oChart:SetProperty("PaneWidth",.F.,64)
oChart:FirstVisibleDate := "11/23/2011"
oChart:LevelCount := 3
oChart:FirstWeekDay := 1/*exMonday*/
oChart:AllowInsideZoom := .T.
oChart:InsideZooms():Add("11/29/2011"):AllowCustomFormat := .T.
oInsideZoom := oChart:InsideZooms:Item("11/29/2011")
oInsideZoom:Width := 68
oInsideZoom:CustomFormat():SetProperty("BackColorChart",AutomationTranslateColor( GraMakeRGBColor ( { 224,224,224 } ) , .F. ))
oItems := oG2antt:Items()
hA := oItems:AddItem("Task A")
oItems:AddBar(hA,"Task","11/24/2011","11/26/2011","A")
hB := oItems:AddItem("Task B")
oItems:AddBar(hB,"Task","11/28/2011","12/01/2011","B")
oItems:AddLink("LinkAB",hA,"A",hB,"B")
oItems:SetProperty("Link","LinkAB",9/*exLinkStyle*/,2)
oItems:SetProperty("Link","LinkAB",10/*exLinkWidth*/,2)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1396
|
Could you please tell me how to add multiple bars to the one line

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():FirstVisibleDate := "01/01/2002"
oG2antt:Columns():Add("Task")
oItems := oG2antt:Items()
h := oItems:AddItem("Task")
oItems:AddBar(h,"Task","01/02/2002","01/04/2002","A")
oItems:AddBar(h,"Task","01/06/2002","01/10/2002","B")
oItems:SetProperty("ItemBar",h,"A",33/*exBarColor*/,255)
oItems:AddLink("AB",h,"A",h,"B")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1395
|
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
LOCAL h1,h2
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oG2antt:Chart():FirstVisibleDate := "01/01/2001"
oItems := oG2antt:Items()
h1 := oItems:AddItem("Task 1")
oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","K1")
h2 := oItems:AddItem("Task 2")
oItems:AddBar(h2,"Task","01/05/2001","01/07/2001","K2")
oItems:AddLink("L1",h1,"K1",h2,"K2")
oItems:SetProperty("Link","L1",6/*exLinkStartPos*/,0)
oG2antt:EndUpdate()
oG2antt:Template := "Dim p;p = CreateObject(`Exontrol.Print`);p.PrintExt = Me;p.AutoRelease = False;p.Preview();"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1394
|
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oPrint
LOCAL oItems
LOCAL h1,h2
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oG2antt:Chart():FirstVisibleDate := "01/01/2001"
oItems := oG2antt:Items()
h1 := oItems:AddItem("Task 1")
oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","K1")
h2 := oItems:AddItem("Task 2")
oItems:AddBar(h2,"Task","01/05/2001","01/07/2001","K2")
oItems:AddLink("L1",h1,"K1",h2,"K2")
oItems:SetProperty("Link","L1",6/*exLinkStartPos*/,0)
oG2antt:EndUpdate()
oPrint := CreateObject("Exontrol.Print")
oPrint:PrintExt := oG2antt:ExecuteTemplate("me")
oPrint:Preview()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1393
|
Is it possible to display the bar's captions or labels with a different font/size

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oG2antt:DefaultItemHeight := 24
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,64)
oChart:FirstVisibleDate := "01/01/2001"
oChart:LevelCount := 2
oItems := oG2antt:Items()
h := oItems:AddItem("Default")
oItems:AddBar(h,"Task","01/02/2001","01/06/2001","","This is a the control's font")
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
h := oItems:AddItem("Smaller")
oItems:AddBar(h,"Task","01/02/2001","01/06/2001","","<font ;5>This is a the control's font with a smaller size")
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
h := oItems:AddItem("Larger")
oItems:AddBar(h,"Task","01/02/2001","01/06/2001","","<font ;15>This is a the control's font with a larger size")
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
h := oItems:AddItem("Tahoma 1")
oItems:AddBar(h,"Task","01/02/2001","01/06/2001","","<font Tahoma>This is using a Tahoma font")
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
h := oItems:AddItem("Tahoma 2")
oItems:AddBar(h,"Task","01/02/2001","01/06/2001","","<font Tahoma;14>This is using a <b>Tahoma</b> font with a different size")
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1392
|
How can I apply the same ConditionalFormat on more than 1(one) column (multiple columns and not on item)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumns
LOCAL oConditionalFormat,oConditionalFormat1
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oConditionalFormat := oG2antt:ConditionalFormats():Add("1","K1")
oConditionalFormat:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oConditionalFormat:ApplyTo := 1/*0x1+*/
oConditionalFormat1 := oG2antt:ConditionalFormats():Add("1","K2")
oConditionalFormat1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oConditionalFormat1:ApplyTo := 2/*0x2+*/
oG2antt:MarkSearchColumn := .F.
oG2antt:DrawGridLines := -2/*exRowLines*/
oColumns := oG2antt:Columns()
oColumns:Add("Column 1")
oColumns:Add("Column 2")
oColumns:Add("Column 3")
oItems := oG2antt:Items()
oItems:AddItem()
oItems:AddItem()
oItems:AddItem()
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1391
|
Is it possible to change the height for all items at once
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oG2antt:Columns():Add("Items")
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",0,.T.)
oG2antt:EndUpdate()
oG2antt:DefaultItemHeight := 12
oG2antt:Items():SetProperty("ItemHeight",0,12)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1390
|
Is it possible to include the weekday when displaying the date

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oColumn,oColumn1
LOCAL oColumns
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:MarkSearchColumn := .F.
oColumns := oG2antt:Columns()
oColumns:Add("Tasks")
oColumn := oColumns:Add("Start")
oColumn:SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oColumn:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn:FormatColumn := "value + '<font ;6> ' + (weekday(date(value)) case(0:'Sun';1:'Mon';2:'Tue';3:'Wed';4:'Thu';5:'Fri';6:'Sat'))"
oColumn1 := oColumns:Add("End")
oColumn1:SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oColumn1:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn1:FormatColumn := "value + '<font ;6> ' + (weekday(date(value)) case(0:'Sun';1:'Mon';2:'Tue';3:'Wed';4:'Thu';5:'Fri';6:'Sat'))"
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "09/20/2006"
oChart:AllowLinkBars := .F.
oChart:AllowCreateBar := 0/*exNoCreateBar*/
oChart:LevelCount := 2
oChart:SetProperty("PaneWidth",.F.,256)
oChart:NonworkingDays := 0
oChart:FirstWeekDay := 1/*exMonday*/
oItems := oG2antt:Items()
oItems:AllowCellValueToItemBar := .T.
oItems:AddBar(oItems:AddItem("Task 1"),"Task","09/21/2006","09/24/2006")
oItems:AddBar(oItems:AddItem("Task 2"),"Task","09/22/2006","09/25/2006")
oItems:AddBar(oItems:AddItem("Task 3"),"Task","09/23/2006","09/26/2006")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1389
|
I need my chart to display the end date with on day less. How can I do this (Method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oColumn
LOCAL oColumns
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:MarkSearchColumn := .F.
oColumns := oG2antt:Columns()
oColumns:Add("Tasks")
oColumns:Add("Start"):SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oColumn := oColumns:Add("End")
oColumn:SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oColumn:FormatColumn := "shortdate(date(value)-1)"
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "09/20/2006"
oChart:AllowLinkBars := .F.
oChart:AllowCreateBar := 0/*exNoCreateBar*/
oChart:LevelCount := 2
oChart:SetProperty("PaneWidth",.F.,196)
oChart:NonworkingDays := 0
oItems := oG2antt:Items()
oItems:AllowCellValueToItemBar := .T.
oItems:AddBar(oItems:AddItem("Task 1"),"Task","09/21/2006","09/24/2006")
oItems:AddBar(oItems:AddItem("Task 2"),"Task","09/22/2006","09/25/2006")
oItems:AddBar(oItems:AddItem("Task 3"),"Task","09/23/2006","09/26/2006")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1388
|
Is it possible to display my custom time-units

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oLevel,oLevel1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oChart:FirstVisibleDate := 0
oChart:NonworkingDays := 0
oLevel := oChart:Level(0)
oLevel:Unit := 4096/*exDay*/
oLevel:Count := 16
oLevel:Alignment := 1/*CenterAlignment*/
oLevel:Label := "<%i%>"
oLevel:FormatLabel := "'Half ' + (1 + (value/16) mod 2)"
oLevel1 := oChart:Level(1)
oLevel1:Label := "<%i%>"
oLevel1:FormatLabel := "1 + value mod 16"
oLevel1:SetProperty("ReplaceLabel",Transform(2,""),"<font ;10><B>Y")
oChart:AdjustLevelsToBase := .T.
oChart:SetProperty("ScrollRange",0/*exStartDate*/,0)
oChart:SetProperty("ScrollRange",1/*exEndDate*/,31)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1387
|
Is it possible to add new records and see them in the control's view using the DataSource

PROCEDURE OnAddItem(oG2antt, Item)
LOCAL oItems
oItems := oG2antt:Items()
oItems:SetProperty("SelectItem",Item,.T.)
oItems:EnsureVisibleItem(Item)
oG2antt:Edit(0)
RETURN
PROCEDURE OnButtonClick(oG2antt, Item, ColIndex, Key)
oG2antt:DataSource():AddNew()
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
LOCAL h
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:AddItem := {|Item| OnAddItem(oG2antt, Item)} /*Occurs after a new Item has been inserted to Items collection.*/
oG2antt:ButtonClick := {|Item, ColIndex, Key| OnButtonClick(oG2antt, Item, ColIndex, Key)} /*Occurs when user clicks on the cell's button.*/
rs := CreateObject("ADODB.Recordset")
rs:Append("Task",8/*adBSTR*/)
rs:Append("Start",7/*adDate*/)
rs:Append("End",7/*adDate*/)
rs:Open()
oG2antt:DrawGridLines := -2/*exRowLines*/
oG2antt:DetectAddNew := .T.
oG2antt:DetectDelete := .T.
oG2antt:DataSource := rs
oItems := oG2antt:Items()
oItems:SetProperty("LockedItemCount",0/*exTop*/,1)
h := oItems:LockedItem(0/*exTop*/,0)
oItems:SetProperty("ItemDivider",h,0)
oItems:SetProperty("ItemHeight",h,22)
oItems:SetProperty("CellValue",h,0,"AddNew")
oItems:SetProperty("CellHasButton",h,0,.T.)
oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1386
|
How can I limit the bars to scrolling range only
PROCEDURE OnCreateBar(oG2antt, Item, DateStart, DateEnd)
LOCAL oItems
oItems := oG2antt:Items()
oItems:SetProperty("ItemBar",Item,"newbar",22/*exBarMinStart*/,oG2antt:Chart():ScrollRange(2/*exMinDate*/))
oItems:SetProperty("ItemBar",Item,"newbar",25/*exBarMaxEnd*/,oG2antt:Chart():ScrollRange(3/*exMaxDate*/))
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:CreateBar := {|Item, DateStart, DateEnd| OnCreateBar(oG2antt, Item, DateStart, DateEnd)} /*Fired when the user creates a new bar.*/
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:LevelCount := 2
oChart:SetProperty("PaneWidth",.F.,56)
oChart:SetProperty("ScrollRange",0/*exStartDate*/,"01/01/2001")
oChart:SetProperty("ScrollRange",1/*exEndDate*/,"01/15/2001")
oChart:FirstVisibleDate := "01/12/2001"
oChart:AllowCreateBar := 1/*exCreateBarAuto*/
oItems := oG2antt:Items()
oItems:AddItem("Task 1")
oItems:AddItem("Task 2")
oItems:AddItem("Task 3")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1385
|
How do I get the handle of the last added item
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:Columns():Add("Def")
oItems := oG2antt:Items()
oItems:AddItem(1)
oItems:AddItem(2)
DevOut( Transform(oItems:ItemByIndex(oItems:ItemCount()),"") )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1384
|
How can I set the charts date format to any other international Format then the US version. I would need "dd.mmm.yyyy" instead of "mmm.d.'yy"
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oLevel
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oLevel := oChart:Level(0)
oLevel:Label := "<%dd%>.<%mmm%>.<%yyyy%>"
oLevel:Unit := 256/*exWeek*/
oLevel:Alignment := 17/*exHOutside+CenterAlignment*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1383
|
Is it possible to define the bar colors, and have the cumulative histogram showing the same colors

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oItems
LOCAL h,h1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SingleSel := .F.
oChart := oG2antt:Chart()
oChart:LevelCount := 2
oChart:AllowLinkBars := .F.
oChart:DrawGridLines := -1/*exAllLines*/
oChart:FirstVisibleDate := "12/24/2000"
oChart:HistogramVisible := .T.
oChart:HistogramHeight := 64
oChart:SetProperty("PaneWidth",.F.,128)
oChart:HistogramView := 1298/*exHistogramNoGrouping+exHistogramLeafItems+exHistogramUnlockedItems+exHistogramSelectedItems*/
oBar := oChart:Bars:Item("Task")
oBar:HistogramType := 256/*exHistCumulative*/
oBar:HistogramItems := 6
oBar:HistogramPattern := oBar:Pattern()
oBar:HistogramCumulativeOriginalColorBars := 1/*exKeepOriginalColor*/
oBar:OverlaidType := 1/*exOverlaidBarsOffset*/
oG2antt:Columns():Add("Column")
oItems := oG2antt:Items()
h := oItems:AddItem("Project")
oItems:SetProperty("ItemBold",h,.T.)
oItems:SetProperty("SelectableItem",h,.F.)
h1 := oItems:InsertItem(h,,"Item 1")
oItems:AddBar(h1,"Task","01/02/2001","01/04/2001")
h1 := oItems:InsertItem(h,,"Item 2")
oItems:AddBar(h1,"Task","01/03/2001","01/05/2001")
h1 := oItems:InsertItem(h,,"Item 3")
oItems:AddBar(h1,"Task","01/04/2001","01/06/2001")
oItems:AddBar(h1,"Task","01/01/2001","01/03/2001","green")
oItems:SetProperty("ItemBar",h1,"green",33/*exBarColor*/,65280)
oItems:AddBar(h1,"Task","01/08/2001","01/10/2001","red")
oItems:SetProperty("ItemBar",h1,"red",33/*exBarColor*/,255)
oItems:SetProperty("ExpandItem",h,.T.)
oItems:SelectAll()
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1382
|
How can I hide the values shown in the legend when cumulative histogram is displayed

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:HistogramVisible := .T.
oChart:HistogramHeight := 64
oChart:SetProperty("PaneWidth",.F.,128)
oChart:HistogramView := 1300/*exHistogramNoGrouping+exHistogramLeafItems+exHistogramUnlockedItems+exHistogramCheckedItems*/
oBar := oChart:Bars:Item("Task")
oBar:HistogramPattern := 1/*exPatternSolid*/
oBar:HistogramType := 256/*exHistCumulative*/
oBar:HistogramItems := 6
oBar:SetProperty("HistogramRulerLinesColor",AutomationTranslateColor( GraMakeRGBColor ( { 128,0,0 } ) , .F. ))
oBar:SetProperty("HistogramBorderColor",AutomationTranslateColor( GraMakeRGBColor ( { 1,0,0 } ) , .F. ))
oBar:HistogramCumulativeShowLegend := 65535
oBar:HistogramCumulativeOriginalColorBars := 0/*exChangeColor*/
oColumn := oG2antt:Columns():Add("Column")
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:PartialCheck := .T.
oItems := oG2antt:Items()
h := oItems:AddItem("Project 1")
oItems:AddBar(oItems:InsertItem(h,,"Item 1"),"Task","01/02/2001","01/04/2001")
oItems:AddBar(oItems:InsertItem(h,,"Item 2"),"Task","01/03/2001","01/05/2001")
oItems:AddBar(oItems:InsertItem(h,,"Item 3"),"Task","01/04/2001","01/06/2001")
oItems:AddBar(oItems:InsertItem(h,,"Item 4"),"Task","01/02/2001","01/08/2001")
oItems:SetProperty("CellState",oItems:ItemByIndex(1),0,1)
oItems:SetProperty("ExpandItem",h,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1381
|
Is it possible to define the bar colors, and have the cumulative histogram showing the same colors

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SetProperty("SelBackColor",oG2antt:BackColor())
oG2antt:SetProperty("SelForeColor",oG2antt:ForeColor())
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:HistogramVisible := .T.
oChart:HistogramHeight := 64
oChart:SetProperty("PaneWidth",.F.,128)
oChart:HistogramView := 1300/*exHistogramNoGrouping+exHistogramLeafItems+exHistogramUnlockedItems+exHistogramCheckedItems*/
oBar := oChart:Bars:Item("Task")
oBar:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 128,128,128 } ) , .F. ))
oBar:HistogramType := 256/*exHistCumulative*/
oBar:HistogramItems := 6
oBar:SetProperty("HistogramRulerLinesColor",AutomationTranslateColor( GraMakeRGBColor ( { 128,0,0 } ) , .F. ))
oBar:SetProperty("HistogramBorderColor",AutomationTranslateColor( GraMakeRGBColor ( { 1,0,0 } ) , .F. ))
oBar:HistogramCumulativeColors := 2
oBar:SetProperty("HistogramCumulativeColor",0,AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. ))
oBar:SetProperty("HistogramCumulativeColor",1,AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. ))
oBar:HistogramCumulativeOriginalColorBars := 0/*exChangeColor*/
oBar:HistogramPattern := oBar:Pattern()
oBar:HistogramCumulativeShowLegend := 65535
oColumn := oG2antt:Columns():Add("Column")
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:PartialCheck := .T.
oItems := oG2antt:Items()
h := oItems:AddItem("Project 1")
oItems:AddBar(oItems:InsertItem(h,,"Item 1"),"Task","01/02/2001","01/04/2001")
oItems:AddBar(oItems:InsertItem(h,,"Item 2"),"Task","01/03/2001","01/05/2001")
oItems:AddBar(oItems:InsertItem(h,,"Item 3"),"Task","01/04/2001","01/06/2001")
oItems:AddBar(oItems:InsertItem(h,,"Item 4"),"Task","01/02/2001","01/08/2001")
oItems:SetProperty("CellState",oItems:ItemByIndex(1),0,1)
oItems:SetProperty("ExpandItem",h,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1380
|
Is it possible to show the non-working pattern over the bars

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar,oBar1
LOCAL oBars
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Tasks")
oChart := oG2antt:Chart()
oChart:NonworkingDaysPattern := 6/*exPatternBDiagonal*/
oChart:SetProperty("NonworkingDaysColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oChart:SetProperty("PaneWidth",.F.,40)
oChart:FirstVisibleDate := "06/20/2005"
oChart:HistogramVisible := .T.
oChart:HistogramHeight := 64
oChart:HistogramView := 2160/*exHistogramBackground+exHistogramAllItems*/
oChart:LevelCount := 2
oBars := oChart:Bars()
oBar := oBars:Add("Empty")
oBar:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oBar:Pattern := 5/*exPatternFDiagonal*/
oBar:Shape := 17/*exShapeSolidFrameless*/
oBar1 := oBars:Add("Task:Empty")
oBar1:Shortcut := "Task"
oBar1:HistogramItems := -5
oBar1:HistogramCriticalValue := 3
oBar1:HistogramType := 0/*exHistOverload*/
oBar1:HistogramPattern := oBar1:Pattern()
oBar1:SetProperty("Def",3/*exBarCaption*/,"<%=%258%> working days bar")
oBar1:SetProperty("Def",4/*exBarHAlignCaption*/,18)
oBar1:SetProperty("Def",20/*exBarKeepWorkingCount*/,.T.)
oChart:UnitWidthNonworking := -12
oChart:Level(1):FormatLabel := "weekday(dvalue) in (0,6) ? `` : value"
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task A"),"Task","06/23/2005","06/29/2005","")
oItems:AddBar(oItems:AddItem("Task B"),"Task","06/24/2005","06/28/2005","")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1379
|
I'm showing values from a ado recordset from sql 2005. When I try to edit a column with integers, it just skips back to the original numbers after pressing enter..., why
PROCEDURE OnAddItem(oG2antt, Item)
LOCAL oItems
oItems := oG2antt:Items()
oItems:AddBar(Item,"Task",oItems:CellValue(Item,2),oItems:CellValue(Item,4))
RETURN
PROCEDURE OnError(oG2antt, Error, Description)
DevOut( Transform(Error,"") )
DevOut( Transform(Description,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:AddItem := {|Item| OnAddItem(oG2antt, Item)} /*Occurs after a new Item has been inserted to Items collection.*/
oG2antt:Error := {|Error, Description| OnError(oG2antt, Error, Description)} /*Fired when an internal error occurs.*/
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "08/03/1994"
oChart:SetProperty("PaneWidth",.F.,256)
oChart:LevelCount := 2
oChart:UnitScale := 4096/*exDay*/
oChart:FirstWeekDay := 1/*exMonday*/
oChart:OverviewVisible := 2/*exOverviewShowAllVisible*/
oG2antt:ColumnAutoResize := .F.
oG2antt:ContinueColumnScroll := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",1/*adOpenKeyset*/,1/*adLockReadOnly*/)
oG2antt:DataSource := rs
oG2antt:Items():AllowCellValueToItemBar := .T.
oG2antt:Columns:Item(2):SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oG2antt:Columns:Item(4):SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1378
|
Is it possible to reduce the non-working parts of the control

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Tasks")
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,40)
oChart:FirstVisibleDate := "06/20/2005"
oChart:HistogramVisible := .T.
oChart:HistogramHeight := 64
oChart:HistogramView := 112/*exHistogramAllItems*/
oChart:LevelCount := 2
oBar := oChart:Bars():Item("Task")
oBar:HistogramType := 1/*exHistOverAllocation*/
oBar:HistogramPattern := oBar:Pattern()
oChart:UnitWidthNonworking := -8
oChart:Level(1):FormatLabel := "weekday(dvalue) in (0,6) ? `` : value"
oItems := oG2antt:Items()
h := oItems:AddItem("Task A")
oItems:AddBar(h,"Task","06/23/2005","06/29/2005","","4 working days bar")
oItems:SetProperty("ItemBar",h,"",10/*exBarCanResize*/,.F.)
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"",21/*exBarEffort*/,4)
oItems:SetProperty("ItemBar",h,"",20/*exBarKeepWorkingCount*/,.T.)
h := oItems:AddItem("Task B")
oItems:AddBar(h,"Task","06/28/2005","06/30/2005","","2 working days bar")
oItems:SetProperty("ItemBar",h,"",10/*exBarCanResize*/,.F.)
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"",21/*exBarEffort*/,2)
oItems:SetProperty("ItemBar",h,"",20/*exBarKeepWorkingCount*/,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1377
|
I don't want to see the "schedule"/show "workload" in non-working days part of the histogram

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Tasks")
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,40)
oChart:FirstVisibleDate := "06/20/2005"
oChart:HistogramVisible := .T.
oChart:HistogramHeight := 64
oChart:HistogramView := 112/*exHistogramAllItems*/
oChart:LevelCount := 2
oBar := oChart:Bars():Item("Task")
oBar:HistogramType := 1/*exHistOverAllocation*/
oBar:HistogramPattern := oBar:Pattern()
oChart:ShowNonworkingDates := .F.
oChart:ShowNonworkingUnits := .F.
oItems := oG2antt:Items()
h := oItems:AddItem("Task A")
oItems:AddBar(h,"Task","06/23/2005","06/29/2005","","4 working days bar")
oItems:SetProperty("ItemBar",h,"",10/*exBarCanResize*/,.F.)
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"",21/*exBarEffort*/,4)
oItems:SetProperty("ItemBar",h,"",20/*exBarKeepWorkingCount*/,.T.)
h := oItems:AddItem("Task B")
oItems:AddBar(h,"Task","06/28/2005","06/30/2005","","2 working days bar")
oItems:SetProperty("ItemBar",h,"",10/*exBarCanResize*/,.F.)
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"",21/*exBarEffort*/,2)
oItems:SetProperty("ItemBar",h,"",20/*exBarKeepWorkingCount*/,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1376
|
The control shows, and handles non-working days PERFECT, but how is it possible to reflect this in the Histogram. I don't want to "schedule"/show "workload" in non-working days...

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Tasks")
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,40)
oChart:FirstVisibleDate := "06/20/2005"
oChart:HistogramVisible := .T.
oChart:HistogramHeight := 64
oChart:HistogramView := 112/*exHistogramAllItems*/
oChart:LevelCount := 2
oBar := oChart:Bars():Item("Task")
oBar:HistogramType := 1/*exHistOverAllocation*/
oBar:HistogramPattern := oBar:Pattern()
oItems := oG2antt:Items()
h := oItems:AddItem("Task A")
oItems:AddBar(h,"Task","06/23/2005","06/29/2005","","4 working days bar")
oItems:SetProperty("ItemBar",h,"",10/*exBarCanResize*/,.F.)
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"",21/*exBarEffort*/,4)
oItems:SetProperty("ItemBar",h,"",20/*exBarKeepWorkingCount*/,.T.)
h := oItems:AddItem("Task B")
oItems:AddBar(h,"Task","06/28/2005","06/30/2005","","2 working days bar")
oItems:SetProperty("ItemBar",h,"",10/*exBarCanResize*/,.F.)
oItems:SetProperty("ItemBar",h,"",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"",21/*exBarEffort*/,2)
oItems:SetProperty("ItemBar",h,"",20/*exBarKeepWorkingCount*/,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1375
|
When I do select the button in the overview-zoom I want the scaling to change accordingly. Can I set different scales per selected zoom level

PROCEDURE OnOverviewZoom(oG2antt)
DevOut( Transform(oG2antt:Chart:UnitScale(),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:OverviewZoom := {|| OnOverviewZoom(oG2antt)} /*Occurs once the user selects a new time scale unit in the overview zoom area.*/
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oChart:OverviewVisible := 2/*exOverviewShowAllVisible*/
oChart:AllowOverviewZoom := 1/*exAlwaysZoom*/
oChart:SetProperty("Label",16777216/*exSecond*/,"")
oChart:SetProperty("Label",0/*exYear*/,"")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1374
|
How do I display Icons instead of text in the overview zoom area

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oChart := oG2antt:Chart()
oChart:OverviewVisible := 2/*exOverviewShowAllVisible*/
oChart:AllowOverviewZoom := 1/*exAlwaysZoom*/
oChart:SetProperty("Label",16777216/*exSecond*/,"")
oChart:SetProperty("Label",0/*exYear*/,"")
DevOut( oChart:OverviewZoomCaption() )
oChart:OverviewZoomCaption := "Year|½Year|¼Year|Month|Third|<img>1</img>|Day|Hour|Min|Sec"
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1373
|
How do I get it to only display Min, Hour, Day, Week , Month, ie remove Sec and Year in the overview area
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oChart := oG2antt:Chart()
oChart:OverviewVisible := 2/*exOverviewShowAllVisible*/
oChart:AllowOverviewZoom := 1/*exAlwaysZoom*/
oChart:SetProperty("Label",16777216/*exSecond*/,"")
oChart:SetProperty("Label",0/*exYear*/,"")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1372
|
Is it possible to show quarter hours markers

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oLevel,oLevel1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SetProperty("GridLineColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oG2antt:VisualAppearance():Add(3,"gBFLBCJwBAEHhEJAEGg4BdMIQAAYAQGKIYBkAKBQAGaAoDDUNw5QwAAwjSKkEwsACEIrjKCRShyCYZRhGcTAFBMIhkGoSZKlCIRVDCKYJDbKACSFKkNQ7AabZBgOQJVgOKovThKcIybQAASJCKRY7nUIIJA+SoDSRAbqhYIgASnKqLJAkACIJJAaRjHQdJxGKKMQANBghCZseKhWgkKIJUxAdLTWAAMQuaCoZ5icRAca2fJ+XzfeBYDgmAYNQbDcJhHCMMwXDaJZBiGJ4dimI4rR7JIDzDJ8cxbEKTZ5meg5boGRZNTrMQA0fQ9MynK6vahfOi7DpuaZnWrcMb2fYNZwrGq0bxoW58BwmP5/XrkNa4XgcVgmAUBA")
oG2antt:HeaderHeight := 20
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oChart:UnitScale := 65536/*exHour*/
oLevel := oChart:Level(0)
oLevel:Alignment := 16/*exHOutside*/
oLevel:Label := "<%dddd%>, <%mmmm%> <b><%d%></b>, <%yyyy%>"
oLevel:DrawTickLines := 2/*exLevelSolidLine*/
oLevel1 := oChart:Level(1)
oLevel1:Label := "<%hh%>:00"
oLevel1:SetProperty("BackColor",0x3000000)
oLevel1:DrawTickLines := 2/*exLevelSolidLine*/
oChart:DrawLevelSeparator := 2/*exLevelSolidLine*/
oChart:UnitWidth := 64
oChart:ResizeUnitScale := 1048576/*exMinute*/
oChart:ResizeUnitCount := 15
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1371
|
How can I ensure or always show the labels on the chart part, when scrolling the chart to left or right
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oLevel
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oChart:UnitWidth := 48
oChart:UnitScale := 65536/*exHour*/
oLevel := oChart:Level(0)
oLevel:Alignment := 17/*exHOutside+CenterAlignment*/
oLevel:Label := "<%dddd%>, <%mmmm%> <b><%d%></b>, <%yyyy%>"
oChart:Level(1):Label := "<%hh%>:00"
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1370
|
I associate the Start and End columns with bars, but some of them are not shown. What am I doing wrong
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oColumn,oColumn1
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:MarkSearchColumn := .F.
oG2antt:Items():AllowCellValueToItemBar := .T.
oChart := oG2antt:Chart()
oChart:LevelCount := 2
oChart:FirstVisibleDate := "12/25/2000"
oChart:SetProperty("PaneWidth",.F.,128)
oColumn := oG2antt:Columns():Add("Start")
oColumn:SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oColumn:SetProperty("Def",19/*exCellValueToItemBarKey*/,"K1")
oColumn1 := oG2antt:Columns():Add("End")
oColumn1:SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oColumn1:SetProperty("Def",19/*exCellValueToItemBarKey*/,"K1")
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem(),"Task","01/01/2001","01/05/2001","K1")
oItems:AddBar(oItems:AddItem(),"Task","01/02/2001","01/06/2001","K1")
oItems:AddBar(oItems:AddItem(),"Task","01/03/2001","01/07/2001","????","????")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1369
|
How can I implement OLE Drag and Drop operation
PROCEDURE OnOLEStartDrag(oG2antt, Data, AllowedEffects)
/*Data.SetData("your data to drag")*/
AllowedEffects := 2
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:OLEStartDrag := {|Data, AllowedEffects| OnOLEStartDrag(oG2antt, Data, AllowedEffects)} /*Occurs when the OLEDrag method is called.*/
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:Columns():Add("Default")
oItems := oG2antt:Items()
oItems:AddItem("Item 1")
oItems:AddItem("Item 2")
oItems:AddItem("Item 3")
oItems:AddItem("Item 4")
oItems:AddItem("Item 5")
oG2antt:OLEDropMode := 1/*exOLEDropManual*/
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1368
|
I can not associate the bar's start and end properties with my start/end columns, only if the bar's key is empty or null. What can I do

PROCEDURE OnButtonClick(oG2antt, Item, ColIndex, Key)
LOCAL oColumns
LOCAL oItems
oG2antt:BeginUpdate()
oColumns := oG2antt:Columns()
oColumns:Item("Tasks"):SetProperty("Def",19/*exCellValueToItemBarKey*/,"B")
oColumns:Item("Start"):SetProperty("Def",19/*exCellValueToItemBarKey*/,"B")
oColumns:Item("End"):SetProperty("Def",19/*exCellValueToItemBarKey*/,"B")
oItems := oG2antt:Items()
oItems:SetProperty("CellValue",Item,1,"B")
oItems:SetProperty("ItemBar",0,"B",33/*exBarColor*/,0)
oItems:SetProperty("ItemBar",0,"A",33/*exBarColor*/,16775408)
oG2antt:EndUpdate()
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oColumn,oColumn1,oColumn2
LOCAL oColumns
LOCAL oItems,oItems1
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:ButtonClick := {|Item, ColIndex, Key| OnButtonClick(oG2antt, Item, ColIndex, Key)} /*Occurs when user clicks on the cell's button.*/
oG2antt:BeginUpdate()
oColumns := oG2antt:Columns()
oColumn := oColumns:Add("Tasks")
oColumn:Width := 32
oColumn:SetProperty("Def",18/*exCellValueToItemBarProperty*/,3)
oColumn:SetProperty("Def",19/*exCellValueToItemBarKey*/,"A")
oColumn1 := oColumns:Add("Start")
oColumn1:SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oColumn1:SetProperty("Def",19/*exCellValueToItemBarKey*/,"A")
oColumn1:Editor():EditType := 7/*DateType*/
oColumn2 := oColumns:Add("End")
oColumn2:SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oColumn2:SetProperty("Def",19/*exCellValueToItemBarKey*/,"A")
oColumn2:Editor():EditType := 7/*DateType*/
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "09/20/2006"
oChart:AllowLinkBars := .T.
oChart:AllowCreateBar := 0/*exNoCreateBar*/
oChart:LevelCount := 2
oChart:SetProperty("PaneWidth",.F.,196)
oBar := oChart:Bars:Item("Task")
oBar:Pattern := 6/*exPatternBDiagonal*/
oBar:OverlaidType := 515/*exOverlaidBarsStackAutoArrange+exOverlaidBarsStack*/
oBar:SetProperty("Overlaid",256/*exOverlaidBarsTransparent*/,80)
oItems := oG2antt:Items()
oItems:SetProperty("LockedItemCount",0/*exTop*/,1)
h := oItems:LockedItem(0/*exTop*/,0)
oItems:SetProperty("CellValue",h,0,"Select")
oItems:SetProperty("CellHasButton",h,0,.T.)
oItems:SetProperty("CellMerge",h,1,2)
oItems:SetProperty("CellValue",h,1,"A")
oItems:CellEditor(h,1):EditType := 1/*EditType*/
oItems1 := oG2antt:Items()
oItems1:AllowCellValueToItemBar := .T.
h := oItems1:AddItem("Task 1")
oItems1:AddBar(h,"Task","09/21/2006","09/24/2006","A","A")
oItems1:AddBar(h,"Task","09/25/2006","09/28/2006","B","B")
oItems1:SetProperty("ItemBar",h,"B",33/*exBarColor*/,16775408)
h := oItems1:AddItem("Task 2")
oItems1:AddBar(h,"Task","09/22/2006","09/25/2006","A","A")
oItems1:AddBar(h,"Task","09/26/2006","09/29/2006","B","B")
oItems1:SetProperty("ItemBar",h,"B",33/*exBarColor*/,16775408)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1367
|
How can I determine the order of the events
PROCEDURE OnAddLink(oG2antt, LinkKey)
DevOut( "AddLink" )
DevOut( Transform(LinkKey,"") )
RETURN
PROCEDURE OnAfterExpandItem(oG2antt, Item)
DevOut( "AfterExpandItem" )
DevOut( Transform(Item,"") )
RETURN
PROCEDURE OnAllowLink(oG2antt, StartItem, StartBarKey, EndItem, EndBarKey, LinkKey, Cancel)
DevOut( "AllowLink" )
DevOut( Transform(StartItem,"") )
DevOut( Transform(StartBarKey,"") )
DevOut( Transform(EndItem,"") )
DevOut( Transform(EndBarKey,"") )
DevOut( Transform(LinkKey,"") )
RETURN
PROCEDURE OnAnchorClick(oG2antt, AnchorID, Options)
DevOut( "AnchorClick" )
DevOut( Transform(AnchorID,"") )
DevOut( Transform(Options,"") )
RETURN
PROCEDURE OnBarParentChange(oG2antt, Item, Key, NewItem, Cancel)
DevOut( "BarParentChange" )
DevOut( Transform(Item,"") )
DevOut( Transform(Key,"") )
DevOut( Transform(NewItem,"") )
RETURN
PROCEDURE OnBarResize(oG2antt, Item, Key)
DevOut( "BarResize" )
DevOut( Transform(Item,"") )
DevOut( Transform(Key,"") )
RETURN
PROCEDURE OnBarResizing(oG2antt, Item, Key)
DevOut( "BarResizing" )
DevOut( Transform(Item,"") )
DevOut( Transform(Key,"") )
RETURN
PROCEDURE OnBeforeExpandItem(oG2antt, Item, Cancel)
DevOut( "BeforeExpandItem" )
DevOut( Transform(Item,"") )
RETURN
PROCEDURE OnButtonClick(oG2antt, Item, ColIndex, Key)
DevOut( "ButtonClick" )
DevOut( Transform(Item,"") )
DevOut( Transform(ColIndex,"") )
DevOut( Transform(Key,"") )
RETURN
PROCEDURE OnCellImageClick(oG2antt, Item, ColIndex)
DevOut( "CellImageClick" )
DevOut( Transform(Item,"") )
DevOut( Transform(ColIndex,"") )
RETURN
PROCEDURE OnCellStateChanged(oG2antt, Item, ColIndex)
DevOut( "CellStateChanged" )
DevOut( Transform(Item,"") )
DevOut( Transform(ColIndex,"") )
RETURN
PROCEDURE OnChange(oG2antt, Item, ColIndex, NewValue)
DevOut( "Change" )
DevOut( Transform(Item,"") )
DevOut( Transform(ColIndex,"") )
DevOut( Transform(NewValue,"") )
RETURN
PROCEDURE OnChartEndChanging(oG2antt, Operation)
DevOut( "ChartEndChanging" )
DevOut( Transform(Operation,"") )
RETURN
PROCEDURE OnChartSelectionChanged(oG2antt)
DevOut( "ChartSelectionChanged" )
RETURN
PROCEDURE OnChartStartChanging(oG2antt, Operation)
DevOut( "ChartStartChanging" )
DevOut( Transform(Operation,"") )
RETURN
PROCEDURE OnClick(oG2antt)
DevOut( "Click" )
RETURN
PROCEDURE OnColumnClick(oG2antt, Column)
DevOut( "ColumnClick" )
RETURN
PROCEDURE OnCreateBar(oG2antt, Item, DateStart, DateEnd)
DevOut( "CreateBar" )
DevOut( Transform(Item,"") )
DevOut( Transform(DateStart,"") )
DevOut( Transform(DateEnd,"") )
RETURN
PROCEDURE OnDateChange(oG2antt)
DevOut( "DateChange" )
RETURN
PROCEDURE OnDblClick(oG2antt, Shift, X, Y)
DevOut( "DblClick" )
DevOut( Transform(Shift,"") )
DevOut( Transform(X,"") )
DevOut( Transform(Y,"") )
oG2antt:Edit()
RETURN
PROCEDURE OnEdit(oG2antt, Item, ColIndex, Cancel)
DevOut( "Edit" )
DevOut( Transform(Item,"") )
DevOut( Transform(ColIndex,"") )
RETURN
PROCEDURE OnEditClose(oG2antt)
DevOut( "EditClose" )
RETURN
PROCEDURE OnEditOpen(oG2antt)
DevOut( "EditOpen" )
RETURN
PROCEDURE OnFilterChange(oG2antt)
DevOut( "FilterChange" )
RETURN
PROCEDURE OnFilterChanging(oG2antt)
DevOut( "FilterChanging" )
RETURN
PROCEDURE OnFocusChanged(oG2antt)
DevOut( "FocusChanged" )
RETURN
PROCEDURE OnInsideZoom(oG2antt, DateTime)
DevOut( "InsideZoom" )
DevOut( Transform(DateTime,"") )
RETURN
PROCEDURE OnKeyDown(oG2antt, KeyCode, Shift)
DevOut( "KeyDown" )
DevOut( Transform(KeyCode,"") )
DevOut( Transform(Shift,"") )
RETURN
PROCEDURE OnKeyPress(oG2antt, KeyAscii)
DevOut( "KeyPress" )
DevOut( Transform(KeyAscii,"") )
RETURN
PROCEDURE OnKeyUp(oG2antt, KeyCode, Shift)
DevOut( "KeyUp" )
DevOut( Transform(KeyCode,"") )
DevOut( Transform(Shift,"") )
RETURN
PROCEDURE OnLayoutChanged(oG2antt)
DevOut( "LayoutChanged" )
RETURN
PROCEDURE OnMouseDown(oG2antt, Button, Shift, X, Y)
DevOut( "MouseDown" )
DevOut( Transform(Button,"") )
DevOut( Transform(Shift,"") )
DevOut( Transform(X,"") )
DevOut( Transform(Y,"") )
RETURN
PROCEDURE OnMouseMove(oG2antt, Button, Shift, X, Y)
RETURN
PROCEDURE OnMouseUp(oG2antt, Button, Shift, X, Y)
DevOut( "MouseUp" )
DevOut( Transform(Button,"") )
DevOut( Transform(Shift,"") )
DevOut( Transform(X,"") )
DevOut( Transform(Y,"") )
RETURN
PROCEDURE OnOffsetChanged(oG2antt, Horizontal, NewVal)
DevOut( "OffsetChanged" )
DevOut( Transform(Horizontal,"") )
DevOut( Transform(NewVal,"") )
RETURN
PROCEDURE OnOversizeChanged(oG2antt, Horizontal, NewVal)
DevOut( "OversizeChanged" )
DevOut( Transform(Horizontal,"") )
DevOut( Transform(NewVal,"") )
RETURN
PROCEDURE OnOverviewZoom(oG2antt)
DevOut( "OverviewZoom" )
RETURN
PROCEDURE OnRClick(oG2antt)
DevOut( "RClick" )
RETURN
PROCEDURE OnScrollButtonClick(oG2antt, ScrollBar, ScrollPart)
DevOut( "ScrollButtonClick" )
DevOut( Transform(ScrollBar,"") )
DevOut( Transform(ScrollPart,"") )
RETURN
PROCEDURE OnSelectionChanged(oG2antt)
DevOut( "SelectionChanged" )
RETURN
PROCEDURE OnSort(oG2antt)
DevOut( "Sort" )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oColumn,oColumn1
LOCAL oColumns
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:AddLink := {|LinkKey| OnAddLink(oG2antt, LinkKey)} /*Occurs when the user links two bars using the mouse.*/
oG2antt:AfterExpandItem := {|Item| OnAfterExpandItem(oG2antt, Item)} /*Fired after an item is expanded (collapsed).*/
oG2antt:AllowLink := {|StartItem, StartBarKey, EndItem, EndBarKey, LinkKey, Cancel| OnAllowLink(oG2antt, StartItem, StartBarKey, EndItem, EndBarKey, LinkKey, Cancel)} /*Notifies at runtime when a link between two bars is possible.*/
oG2antt:AnchorClick := {|AnchorID, Options| OnAnchorClick(oG2antt, AnchorID, Options)} /*Occurs when an anchor element is clicked.*/
oG2antt:BarParentChange := {|Item, Key, NewItem, Cancel| OnBarParentChange(oG2antt, Item, Key, NewItem, Cancel)} /*Occurs just before moving a bar from current item to another item.*/
oG2antt:BarResize := {|Item, Key| OnBarResize(oG2antt, Item, Key)} /*Occurs when a bar is moved or resized.*/
oG2antt:BarResizing := {|Item, Key| OnBarResizing(oG2antt, Item, Key)} /*Occurs when a bar is moving or resizing.*/
oG2antt:BeforeExpandItem := {|Item, Cancel| OnBeforeExpandItem(oG2antt, Item, Cancel)} /*Fired before an item is about to be expanded (collapsed).*/
oG2antt:ButtonClick := {|Item, ColIndex, Key| OnButtonClick(oG2antt, Item, ColIndex, Key)} /*Occurs when user clicks on the cell's button.*/
oG2antt:CellImageClick := {|Item, ColIndex| OnCellImageClick(oG2antt, Item, ColIndex)} /*Fired after the user clicks on the image's cell area.*/
oG2antt:CellStateChanged := {|Item, ColIndex| OnCellStateChanged(oG2antt, Item, ColIndex)} /*Fired after cell's state has been changed.*/
oG2antt:Change := {|Item, ColIndex, NewValue| OnChange(oG2antt, Item, ColIndex, NewValue)} /*Occurs when the user changes the cell's content.*/
oG2antt:ChartEndChanging := {|Operation| OnChartEndChanging(oG2antt, Operation)} /*Occurs after the chart has been changed.*/
oG2antt:ChartSelectionChanged := {|| OnChartSelectionChanged(oG2antt)} /*Occurs when the user selects objects in the chart area.*/
oG2antt:ChartStartChanging := {|Operation| OnChartStartChanging(oG2antt, Operation)} /*Occurs when the chart is about to be changed.*/
oG2antt:Click := {|| OnClick(oG2antt)} /*Occurs when the user presses and then releases the left mouse button over the tree control.*/
oG2antt:ColumnClick := {|Column| OnColumnClick(oG2antt, Column)} /*Fired after the user clicks on column's header.*/
oG2antt:CreateBar := {|Item, DateStart, DateEnd| OnCreateBar(oG2antt, Item, DateStart, DateEnd)} /*Fired when the user creates a new bar.*/
oG2antt:DateChange := {|| OnDateChange(oG2antt)} /*Occurs when the first visible date is changed.*/
oG2antt:DblClick := {|Shift, X, Y| OnDblClick(oG2antt, Shift, X, Y)} /*Occurs when the user dblclk the left mouse button over an object.*/
oG2antt:Edit := {|Item, ColIndex, Cancel| OnEdit(oG2antt, Item, ColIndex, Cancel)} /*Occurs just before editing the focused cell.*/
oG2antt:EditClose := {|| OnEditClose(oG2antt)} /*Occurs when the edit operation ends.*/
oG2antt:EditOpen := {|| OnEditOpen(oG2antt)} /*Occurs when the edit operation starts.*/
oG2antt:FilterChange := {|| OnFilterChange(oG2antt)} /*Occurs when the filter was changed.*/
oG2antt:FilterChanging := {|| OnFilterChanging(oG2antt)} /*Notifies your application that the filter is about to change.*/
oG2antt:FocusChanged := {|| OnFocusChanged(oG2antt)} /*Occurs when a cell gets the focus.*/
oG2antt:InsideZoom := {|DateTime| OnInsideZoom(oG2antt, DateTime)} /*Notifies your application that a date is about to be magnified.*/
oG2antt:KeyDown := {|KeyCode, Shift| OnKeyDown(oG2antt, KeyCode, Shift)} /*Occurs when the user presses a key while an object has the focus.*/
oG2antt:KeyPress := {|KeyAscii| OnKeyPress(oG2antt, KeyAscii)} /*Occurs when the user presses and releases an ANSI key.*/
oG2antt:KeyUp := {|KeyCode, Shift| OnKeyUp(oG2antt, KeyCode, Shift)} /*Occurs when the user releases a key while an object has the focus.*/
oG2antt:LayoutChanged := {|| OnLayoutChanged(oG2antt)} /*Occurs when column's position or column's size is changed.*/
oG2antt:MouseDown := {|Button, Shift, X, Y| OnMouseDown(oG2antt, Button, Shift, X, Y)} /*Occurs when the user presses a mouse button.*/
oG2antt:MouseMove := {|Button, Shift, X, Y| OnMouseMove(oG2antt, Button, Shift, X, Y)} /*Occurs when the user moves the mouse.*/
oG2antt:MouseUp := {|Button, Shift, X, Y| OnMouseUp(oG2antt, Button, Shift, X, Y)} /*Occurs when the user releases a mouse button.*/
oG2antt:OffsetChanged := {|Horizontal, NewVal| OnOffsetChanged(oG2antt, Horizontal, NewVal)} /*Occurs when the scroll position has been changed.*/
oG2antt:OversizeChanged := {|Horizontal, NewVal| OnOversizeChanged(oG2antt, Horizontal, NewVal)} /*Occurs when the right range of the scroll has been changed.*/
oG2antt:OverviewZoom := {|| OnOverviewZoom(oG2antt)} /*Occurs once the user selects a new time scale unit in the overview zoom area.*/
oG2antt:RClick := {|| OnRClick(oG2antt)} /*Fired when right mouse button is clicked*/
oG2antt:ScrollButtonClick := {|ScrollBar, ScrollPart| OnScrollButtonClick(oG2antt, ScrollBar, ScrollPart)} /*Occurs when the user clicks a button in the scrollbar.*/
oG2antt:SelectionChanged := {|| OnSelectionChanged(oG2antt)} /*Fired after a new item has been selected.*/
oG2antt:Sort := {|| OnSort(oG2antt)} /*Fired when the control sorts a column.*/
oG2antt:BeginUpdate()
oG2antt:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oG2antt:DrawGridLines := -1/*exAllLines*/
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oG2antt:GridLineStyle := 4/*exGridLinesHDash*/
oG2antt:AutoEdit := .F.
oG2antt:ExpandOnDblClick := .F.
oChart := oG2antt:Chart()
oChart:AllowInsideZoom := .T.
oChart:OverviewVisible := 2/*exOverviewShowAllVisible*/
oChart:AllowOverviewZoom := 1/*exAlwaysZoom*/
oChart:SetProperty("PaneWidth",.F.,128)
oChart:FirstVisibleDate := "01/01/2001"
oChart:DrawGridLines := -1/*exAllLines*/
oChart:GridLineStyle := 36/*exGridLinesVSolid+exGridLinesHDash*/
oChart:LevelCount := 2
oChart:Level(0):DrawGridLines := .T.
oChart:Bars:Item("Task"):Pattern := 1/*exPatternSolid*/
oChart:UnitScale := 4096/*exDay*/
oChart:SetProperty("Label",16777216/*exSecond*/,"")
oChart:SetProperty("Label",1048576/*exMinute*/,"")
oChart:SetProperty("Label",65536/*exHour*/,"")
oColumns := oG2antt:Columns()
oColumn := oColumns:Add("Column")
oColumn:DisplayFilterButton := .T.
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:Editor():EditType := 1/*EditType*/
oColumn1 := oColumns:Add("Button")
oColumn1:AllowSizing := .F.
oColumn1:Width := 18
oColumn1:SetProperty("Def",2/*exCellHasButton*/,.T.)
oItems := oG2antt:Items()
h := oItems:AddItem("parent")
oItems:SetProperty("CellImage",h,0,1)
oItems:AddBar(h,"Task","01/02/2001","01/05/2001","A","<a>A</a>")
oItems:SetProperty("ItemBar",h,"A",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"A",28/*exBarCanMoveToAnother*/,.T.)
oItems:SetProperty("ItemBar",h,"A",6/*exBarToolTip*/,"This is a bit of text that should be shown when cursor hovers the bar")
oItems:AddBar(h,"Task","01/08/2001","01/15/2001","B","<a>B</a>")
oItems:SetProperty("ItemBar",h,"B",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"B",28/*exBarCanMoveToAnother*/,.T.)
oItems:InsertItem(h,"","child")
oItems:SetProperty("ExpandItem",h,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1366
|
How can I change the chart's horizontal grid lines
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:DrawGridLines := -1/*exAllLines*/
oG2antt:GridLineStyle := 4/*exGridLinesHDash*/
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,48)
oChart:FirstVisibleDate := "01/01/2001"
oChart:DrawGridLines := -1/*exAllLines*/
oChart:GridLineStyle := 36/*exGridLinesVSolid+exGridLinesHDash*/
oChart:LevelCount := 2
oChart:Level(0):DrawGridLines := .T.
oChart:Bars:Item("Task"):Pattern := 1/*exPatternSolid*/
oG2antt:Columns():Add("Column")
oItems := oG2antt:Items()
h := oItems:AddItem("Item 1")
oItems:AddBar(h,"Task","01/02/2001","01/05/2001","A")
oItems:AddBar(h,"Task","01/08/2001","01/15/2001","B")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1365
|
Is there any way to determine whether the ADO operations fails
PROCEDURE OnAddItem(oG2antt, Item)
LOCAL oItems
oItems := oG2antt:Items()
oItems:AddBar(Item,"Task",oItems:CellValue(Item,2),oItems:CellValue(Item,4))
RETURN
PROCEDURE OnError(oG2antt, Error, Description)
DevOut( Transform(Error,"") )
DevOut( Transform(Description,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:AddItem := {|Item| OnAddItem(oG2antt, Item)} /*Occurs after a new Item has been inserted to Items collection.*/
oG2antt:Error := {|Error, Description| OnError(oG2antt, Error, Description)} /*Fired when an internal error occurs.*/
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "08/03/1994"
oChart:SetProperty("PaneWidth",.F.,256)
oChart:LevelCount := 2
oChart:UnitScale := 4096/*exDay*/
oChart:FirstWeekDay := 1/*exMonday*/
oChart:OverviewVisible := 2/*exOverviewShowAllVisible*/
oG2antt:ColumnAutoResize := .F.
oG2antt:ContinueColumnScroll := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",1/*adOpenKeyset*/,1/*adLockReadOnly*/)
oG2antt:DataSource := rs
oG2antt:Items():AllowCellValueToItemBar := .T.
oG2antt:Columns:Item(2):SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oG2antt:Columns:Item(4):SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1364
|
Is it possible to select a column instead sorting it
PROCEDURE OnColumnClick(oG2antt, Column)
/*Column.Selected = True*/
oG2antt:BeginUpdate()
oG2antt:Columns:Item(0):Selected := .F.
oG2antt:Columns:Item(1):Selected := .F.
oG2antt:Items():SelectAll()
oG2antt:EndUpdate()
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumns
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:ColumnClick := {|Column| OnColumnClick(oG2antt, Column)} /*Fired after the user clicks on column's header.*/
oG2antt:BeginUpdate()
oG2antt:MarkSearchColumn := .F.
oG2antt:ShowFocusRect := .F.
oG2antt:SingleSel := .F.
oG2antt:FullRowSelect := 1/*exRectSel*/
oG2antt:SortOnClick := 0/*exNoSort*/
oColumns := oG2antt:Columns()
oColumns:Add("Column1")
oColumns:Add("Column2")
oItems := oG2antt:Items()
oItems:SetProperty("CellValue",oItems:AddItem("One"),1,"Three")
oItems:SetProperty("CellValue",oItems:AddItem("Two"),1,"Four")
oItems:SelectAll()
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1363
|
I am using the exRectSel, and clicking the first column, has no effect, instead if I click other it works as it should
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumns
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SearchColumnIndex := -1
oG2antt:FullRowSelect := 1/*exRectSel*/
oG2antt:ShowFocusRect := .F.
oG2antt:MarkSearchColumn := .F.
oColumns := oG2antt:Columns()
oColumns:Add("Column1")
oColumns:Add("Column2")
oItems := oG2antt:Items()
oItems:SetProperty("CellValue",oItems:AddItem(1),1,2)
oItems:SetProperty("CellValue",oItems:AddItem(3),1,4)
oItems:SetProperty("CellValue",oItems:AddItem(5),1,6)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1362
|
Is it possible to display empty strings for 0 values
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oEditor
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oColumn := oG2antt:Columns():Add("Currency")
oColumn:FormatColumn := "dbl(value) ? currency(dbl(value)) : ``"
oEditor := oColumn:Editor()
oEditor:EditType := 1/*EditType*/
oEditor:Numeric := 1/*exFloat*/
oItems := oG2antt:Items()
oItems:AddItem(1.23)
oItems:AddItem(2.34)
oItems:AddItem(0)
oItems:AddItem(10000.99)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1361
|
Is it possible to display empty strings for 0 values
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:Columns():Add("Number")
oG2antt:Columns():Add("Currency"):ComputedField := "%0 ? currency(%0) : ``"
oItems := oG2antt:Items()
oItems:AddItem(1.23)
oItems:AddItem(2.34)
oItems:AddItem(0)
oItems:AddItem(10000.99)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1360
|
How can I hide a date from the chart view, when I display hours instead days

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oInsideZooms,oInsideZooms1
LOCAL oLevel,oLevel1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:HeaderHeight := 32
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "06/08/2011"
oChart:AdjustLevelsToBase := .T.
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oChart:AllowInsideZoom := .T.
oLevel := oChart:Level(0)
oLevel:Alignment := 1/*CenterAlignment*/
oLevel:Label := "<b><%d%>-<%mmm%>-<%yyyy%>"
oLevel:Unit := 4096/*exDay*/
oLevel1 := oChart:Level(1)
oLevel1:Label := "<%h%>"
oLevel1:Count := 8
oLevel1:Unit := 65536/*exHour*/
oLevel1:FormatLabel := "date(int(dvalue)) case (#06/08/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>23/20'; 8 : 'Shift <b>2</b><br>38/30' ; 16 : 'Shift <b>3</b><br>24/24' ) ) ; #06/09/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>15/20'; 8 : 'Shift <b>2</b><br>30/32' ; 16 : 'Shift <b>3</b><br>26/24' ) ) )"
oChart:UnitWidth := 64
oChart:NonworkingDays := 0
oChart:AllowInsideZoom := .T.
oChart:DefaultInsideZoomFormat():InsideUnit := 1048576/*exMinute*/
oChart:AllowResizeInsideZoom := .F.
oChart:InsideZoomOnDblClick := .F.
oInsideZooms := oChart:InsideZooms()
oInsideZooms:SplitBaseLevel := .F.
oInsideZooms:DefaultWidth := 0
oInsideZooms1 := oChart:InsideZooms()
oInsideZooms1:Add("06/09/2011 08:00:00")
oInsideZooms1:Add("06/09/2011 16:00:00")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1359
|
I’ve created a skin (EBN) for the bars of my chart, with rounded top corners. The problem, is that these rounded corners are applied also at beginning and the end of the non working units. Is it possible to show a different picture/skin for the non-working part of the bars

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBars
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
oG2antt:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
oG2antt:Columns():Add("Task")
oG2antt:Chart():SetProperty("PaneWidth",.F.,128)
oBars := oG2antt:Chart():Bars()
oBars:Item("Task"):SetProperty("Color",0x1000000)
oBars:Item("Split"):SetProperty("Color",0x2000000)
oBars:Add("Task:Split"):Shortcut := "TS"
oG2antt:Chart():FirstVisibleDate := "01/01/2001"
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task"),"TS","01/02/2001","01/16/2001")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1358
|
How do I display the names of the tasks on bars but not in the middle of the bar (left or right)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Tasks")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "12/27/2000"
oChart:SetProperty("PaneWidth",.F.,128)
oBar := oChart:Bars:Item("Task")
oBar:Pattern := 2/*exPatternDot*/
oBar:Height := 15
oItems := oG2antt:Items()
h := oItems:AddItem("Task 1")
oItems:AddBar(h,"Task","01/03/2001","01/08/2001","K1","<b>to do</b> ")
oItems:SetProperty("ItemBar",h,"K1",4/*exBarHAlignCaption*/,2)
h := oItems:AddItem("Task 2")
oItems:AddBar(h,"Task","01/03/2001","01/08/2001","K2","<b>to do</b>")
oItems:SetProperty("ItemBar",h,"K2",4/*exBarHAlignCaption*/,18)
h := oItems:AddItem("Task 3")
oItems:AddBar(h,"Task","01/03/2001","01/08/2001","K1"," <b>to do</b>")
oItems:SetProperty("ItemBar",h,"K1",4/*exBarHAlignCaption*/,0)
h := oItems:AddItem("Task 4")
oItems:AddBar(h,"Task","01/03/2001","01/08/2001","K2","<b>to do</b>")
oItems:SetProperty("ItemBar",h,"K2",4/*exBarHAlignCaption*/,16)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1357
|
How can I get the list of items as they are displayed
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oG2antt:Columns():Add("Names")
oItems := oG2antt:Items()
oItems:AddItem("Mantel")
oItems:AddItem("Mechanik")
oItems:AddItem("Motor")
oItems:AddItem("Murks")
oItems:AddItem("Märchen")
oItems:AddItem("Möhren")
oItems:AddItem("Mühle")
oG2antt:Columns:Item(0):SortOrder := 1/*SortAscending*/
oG2antt:EndUpdate()
DevOut( Transform(oG2antt:GetItems(1),"") )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1356
|
How can I disable the left and right arrows to move to next cell while editing
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL var_Editor
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
var_Editor := oG2antt:Columns:Add("Edit"):Editor()
var_Editor:EditType := 1/*EditType*/
var_Editor:SetProperty("Option",20/*exLeftArrow*/,0)
var_Editor:SetProperty("Option",21/*exRightArrow*/,0)
oItems := oG2antt:Items()
oItems:AddItem("Cell 1")
oItems:AddItem("Cell 2")
oItems:AddItem("Cell 3")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1355
|
Is it possible to define a bar that is treated as a non-working hour so user can move it at runtime

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:LevelCount := 2
oChart:SetProperty("PaneWidth",.F.,48)
oChart:AllowNonworkingBars := .T.
oChart:Bars():Add("Task:Split"):Shortcut := "Task"
oChart:UnitScale := 65536/*exHour*/
oChart:Level(1):Label := "<font ;4><%hh%>"
oChart:UnitWidth := 12
oChart:NonworkingDaysPattern := 6/*exPatternBDiagonal*/
oChart:NonworkingDays := 0
oG2antt:Columns():Add("Tasks")
oItems := oG2antt:Items()
h := oItems:AddItem("Machine")
oItems:SetProperty("ItemNonworkingUnits",h,.F.,"0")
oItems:AddBar(h,"","01/01/2001 09:00:00","01/01/2001 11:00:00","A","pause")
oItems:SetProperty("ItemBar",h,"A",38/*exBarTreatAsNonworking*/,.T.)
oItems:AddBar(h,"Task","01/01/2001 12:00:00","01/01/2001 17:00:00","Z")
oItems:SetProperty("ItemBar",h,"Z",20/*exBarKeepWorkingCount*/,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1354
|
Is it possible to customize the chart's header so I can display shift and other values

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oLevel,oLevel1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:HeaderHeight := 32
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "06/08/2011"
oChart:AdjustLevelsToBase := .T.
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oLevel := oChart:Level(0)
oLevel:Alignment := 1/*CenterAlignment*/
oLevel:Label := "<b><%d%> - <%mmmm%> - <%yyyy%>"
oLevel:Unit := 4096/*exDay*/
oLevel1 := oChart:Level(1)
oLevel1:Label := "<%h%>"
oLevel1:Count := 8
oLevel1:Unit := 65536/*exHour*/
oLevel1:FormatLabel := "date(int(dvalue)) case (#06/08/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>23/20'; 8 : 'Shift <b>2</b><br>38/30' ; 16 : 'Shift <b>3</b><br>24/24' ) ) ; #06/09/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>15/20'; 8 : 'Shift <b>2</b><br>30/32' ; 16 : 'Shift <b>3</b><br>26/24' ) ) )"
oChart:UnitWidth := 64
oChart:NonworkingDays := 0
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1353
|
How can I change both start and end dates of the bar
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Tasks")
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,64)
oChart:FirstVisibleDate := "06/19/2005"
oItems := oG2antt:Items()
h := oItems:AddItem("Test")
oItems:AddBar(h,"Task","06/22/2005","06/27/2005","t1")
oItems:AddBar(h,oItems:ItemBar(h,"t1",0/*exBarName*/),"06/21/2005","06/22/2005","t1")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1352
|
Is it possible to add new rows, as I type like in Excel
PROCEDURE OnEditClose(oG2antt)
oG2antt:Items():AddItem("")
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:EditClose := {|| OnEditClose(oG2antt)} /*Occurs when the edit operation ends.*/
oG2antt:BeginUpdate()
oG2antt:AutoEdit := .T.
oG2antt:Columns():Add("Default"):Editor():EditType := 1/*EditType*/
oG2antt:FullRowSelect := 0/*exColumnSel*/
oG2antt:Items():AddItem("")
oG2antt:DrawGridLines := -1/*exAllLines*/
oG2antt:ScrollBars := 15/*exDisableBoth*/
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1351
|
How do I load bars from my table/database
PROCEDURE OnAddItem(oG2antt, Item)
LOCAL oItems
oItems := oG2antt:Items()
oItems:AddBar(Item,"Task",oItems:CellValue(Item,2),oItems:CellValue(Item,4))
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:AddItem := {|Item| OnAddItem(oG2antt, Item)} /*Occurs after a new Item has been inserted to Items collection.*/
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "08/03/1994"
oChart:SetProperty("PaneWidth",.F.,256)
oChart:LevelCount := 2
oChart:UnitScale := 4096/*exDay*/
oChart:FirstWeekDay := 1/*exMonday*/
oChart:OverviewVisible := 2/*exOverviewShowAllVisible*/
oG2antt:ColumnAutoResize := .F.
oG2antt:ContinueColumnScroll := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oG2antt:DataSource := rs
oG2antt:Items():AllowCellValueToItemBar := .T.
oG2antt:Columns:Item(2):SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oG2antt:Columns:Item(4):SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1350
|
Is posible to reduce the size of the picture to be shown in the bar's caption

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
oG2antt:Columns():Add("Task")
oG2antt:ScrollBySingleLine := .T.
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,78)
oItems := oG2antt:Items()
h := oItems:AddItem("Default-Size")
oItems:SetProperty("ItemHeight",h,48)
oItems:AddBar(h,"Task","01/02/2001","01/06/2001","K1","<img>pic1</img>")
h := oItems:AddItem("Custom-Size")
oItems:AddBar(h,"Task","01/02/2001","01/06/2001","K2","<img>pic1:18</img>")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1349
|
Is posible to reduce the size of the picture to be shown in the column's caption
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
oG2antt:HeaderHeight := 48
oG2antt:Columns():Add("DefaultSize"):HTMLCaption := "Default-Size <img>pic1</img> Picture"
oG2antt:Columns():Add("CustomSize"):HTMLCaption := "Custom-Size <img>pic1:16</img> Picture"
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1348
|
Is it possible to display the selected dates using a solid color instead vertical lines

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,128)
oChart:FirstVisibleDate := "01/01/2008"
oChart:SetProperty("MarkTodayColor",oChart:BackColor())
oChart:LevelCount := 2
oChart:SetProperty("MarkSelectDateColor",0x7fcbc0ff)
oChart:SelectLevel := 1
oChart:SetProperty("SelectDate","01/08/2008",.T.)
oChart:SetProperty("SelectDate","01/09/2008",.T.)
oChart:SetProperty("SelectDate","01/10/2008",.T.)
oG2antt:DefaultItemHeight := 72
oG2antt:Columns():Add("Default")
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem(""),"","01/07/2008","01/12/2008","","<b>MarkSelectDateColor(32)</b><br>should be <font ;11><i>0x7F000000 + RGB(rr,gg,bb)</i></font><br> or in the format as: <font ;11><i>0x7FBBGGRR</i></font>, <br>where BB is the hexa value for Blue, <br>GG for grean and so on.")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1347
|
How can I show the cells using a different background color based on the condition I have
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumns
LOCAL oConditionalFormat,oConditionalFormat1,oConditionalFormat2
LOCAL oConditionalFormats
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:SelBackMode := 1/*exTransparent*/
oG2antt:ShowFocusRect := .F.
oConditionalFormats := oG2antt:ConditionalFormats()
oConditionalFormat := oConditionalFormats:Add("dbl(%1)-dbl(%0) = 1")
oConditionalFormat:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oConditionalFormat:ApplyTo := 1/*0x1+*/
oConditionalFormat1 := oConditionalFormats:Add("dbl(%0)-dbl(%1) = 3")
oConditionalFormat1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,0 } ) , .F. ))
oConditionalFormat1:ApplyTo := 0/*exFormatToColumns*/
oConditionalFormat2 := oConditionalFormats:Add("dbl(%1)-dbl(%0) = 4")
oConditionalFormat2:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 128,128,128 } ) , .F. ))
oConditionalFormat2:Bold := .T.
oConditionalFormat2:ApplyTo := -1/*exFormatToItems*/
oColumns := oG2antt:Columns()
oColumns:Add("C1"):Width := 8
oColumns:Add("C2"):Width := 8
oColumns:Add("")
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oItems := oG2antt:Items()
oItems:SetProperty("CellValue",oItems:AddItem(2),1,3)
oItems:SetProperty("CellValue",oItems:AddItem(5),1,2)
oItems:SetProperty("CellValue",oItems:AddItem(5),1,6)
oItems:SetProperty("CellValue",oItems:AddItem(2),1,6)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1346
|
How can I specify the frame's color for all Task bars

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,128)
oChart:Bars:Item("Task"):SetProperty("Def",51/*exBarFrameColor*/,255)
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task 1"),"Task","01/02/2001","01/05/2001","K1")
oItems:AddBar(oItems:AddItem("Task 2"),"Task","01/02/2001","01/05/2001","K2")
oItems:AddBar(oItems:AddItem("Task 3"),"Task","01/02/2001","01/05/2001","K3")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1345
|
Is it possible to change the bar's frame color

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:DefaultItemHeight := 25
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,128)
oChart:DrawGridLines := 1/*exHLines*/
oChart:NonworkingDays := 0
oChart:Bars:Item("Task"):Height := 15
oItems := oG2antt:Items()
h := oItems:AddItem("Default")
oItems:AddBar(h,"Task","01/02/2001","01/05/2001","K1")
h := oItems:AddItem("Red-Frame")
oItems:AddBar(h,"Task","01/03/2001","01/06/2001","K1")
oItems:SetProperty("ItemBar",h,"K1",51/*exBarFrameColor*/,255)
h := oItems:AddItem("Green-ThickFrame")
oItems:AddBar(h,"Task","01/04/2001","01/07/2001","K1")
oItems:SetProperty("ItemBar",h,"K1",42/*exBarPattern*/,4099)
oItems:SetProperty("ItemBar",h,"K1",51/*exBarFrameColor*/,32768)
h := oItems:AddItem("Red-ThickFrame/Shadow")
oItems:AddBar(h,"Task","01/05/2001","01/08/2001","K1")
oItems:SetProperty("ItemBar",h,"K1",42/*exBarPattern*/,12291)
oItems:SetProperty("ItemBar",h,"K1",51/*exBarFrameColor*/,255)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1344
|
I need to customize the labels on the chart. Is it possible

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oLevel,oLevel1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:HeaderHeight := 32
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "07/01/2011"
oChart:AdjustLevelsToBase := .T.
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oLevel := oChart:Level(0)
oLevel:Alignment := 1/*CenterAlignment*/
oLevel:Label := "<b><%d%> - <%mmmm%> - <%yyyy%>"
oLevel:Unit := 4096/*exDay*/
oLevel1 := oChart:Level(1)
oLevel1:Label := "<%h%>"
oLevel1:Count := 8
oLevel1:Unit := 65536/*exHour*/
oLevel1:FormatLabel := "int(value) case ( 0 : 'Shift <b>1</b><br><font ;11>' + yearday(dvalue) + '</font>/365 ' ; 8 : 'Shift <b>2</b><br>' + weekday(dvalue) + '/20'; 16 : 'Shift <b>3</b><br>' + (weekday(dvalue) case ( 0 : '12/22'; 1 : '12/23'; 2 : '2/3'; 3 : '12/13'; 4 : '22/34' ; 5 : '102-<fgcolor=FF0000><b>31</b></bgcolor>'; 6 : '1/1' ) ) ) "
oChart:UnitWidth := 64
oChart:NonworkingDays := 0
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1343
|
Is it possible to show a frame around the bar

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oAppearance
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:DefaultItemHeight := 25
oAppearance := oG2antt:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAEGg4BOUMQAAYAQGKIYBkAKBQAGaAoDDYMgzQwAAxDELMEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIyAJIcaw0GSEZwgOQZBiOEYnDANkIYJDSIYHTZIUzTJAdGSVJKNKAoKCaEgORo5SpNUghBDYKQTJyeagkaaRVCWLplRCNIwWNJdVwjEaQaaiarKNqKNpSViAEqSdKEZRLOyRZyiKQMEreY4EUDQcxUPYMNYaAC6AAparpbwCFpSYpRND3TaEE4jSLKAA0HD6QqebIDDJaFq6PbVXSTOLPNhgPQcWxeVJBXjLExUALGSYLC6nKayHZcHACKK5VbVW6ZZDdNy/BLQeD4QANG4riuNJriMV4dgWVgHh+ZpgCeEIQEQJIgGkMYdA6JwjC0VAAmaJgQgmPp4lCWgSCiaB+DKIYIjqQpllMf6JgYAoAmASAWAaAZggQDJ/gKYJIDYDoDmECBGAOBBhEgVgUgS" +;
"YRoGYGYGCGKB2BCBwhmiBgLggIgoHoJIJGGKIeCiBYiiiLgXgCIpohoMIMGKGJODSCwghiZg6g6Y5InYPh/lAECAg")
oAppearance:Add(2,"CP:1 2 2 -2 -2")
oAppearance:Add(3,"CP:1 -5 -5 5 5")
oAppearance:Add(4,"XP:Window 19 1")
oAppearance:Add(5,"XP:TreeView 2 1")
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,128)
oChart:DrawGridLines := 1/*exHLines*/
oItems := oG2antt:Items()
h := oItems:AddItem("Default")
oItems:AddBar(h,"Task","01/02/2001","01/05/2001","K1")
h := oItems:AddItem("Red-Frame")
oItems:AddBar(h,"Task","01/03/2001","01/06/2001","K1")
oItems:SetProperty("ItemBar",h,"K1",51/*exBarFrameColor*/,255)
h := oItems:AddItem("Green-ThickFrame")
oItems:AddBar(h,"Task","01/04/2001","01/07/2001","K1")
oItems:SetProperty("ItemBar",h,"K1",42/*exBarPattern*/,4099)
oItems:SetProperty("ItemBar",h,"K1",51/*exBarFrameColor*/,32768)
h := oItems:AddItem("Red-ThickFrame/Shadow")
oItems:AddBar(h,"Task","01/04/2001","01/07/2001","K1")
oItems:SetProperty("ItemBar",h,"K1",42/*exBarPattern*/,12291)
oItems:SetProperty("ItemBar",h,"K1",51/*exBarFrameColor*/,255)
h := oItems:AddItem("EBN-Frame-Border")
oItems:AddBar(h,"Task","01/05/2001","01/09/2001","K2")
oItems:SetProperty("ItemBar",h,"K2",51/*exBarFrameColor*/,16777216)
h := oItems:AddItem("EBN-Inside Frame")
oItems:AddBar(h,"Task","01/09/2001","01/13/2001","K3")
oItems:SetProperty("ItemBar",h,"K3",51/*exBarFrameColor*/,33554432)
h := oItems:AddItem("EBN-Outside Frame")
oItems:AddBar(h,"Task","01/15/2001","01/18/2001","K4")
oItems:SetProperty("ItemBar",h,"K4",51/*exBarFrameColor*/,50331648)
h := oItems:AddItem("EBN-XP Close Button")
oItems:AddBar(h,"Task","01/15/2001","01/18/2001","K5")
oItems:SetProperty("ItemBar",h,"K5",51/*exBarFrameColor*/,67108864)
h := oItems:AddItem("EBN-XP TreeView Glyph")
oItems:AddBar(h,"Task","01/15/2001","01/18/2001","K6")
oItems:SetProperty("ItemBar",h,"K6",51/*exBarFrameColor*/,83886080)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1342
|
Currently your control, provides customization up to Year,Month,Day,Hours,etc. I would like to add Shifts in a day. Shortly, I need to customize the chart's header. Is it possible

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oLevel,oLevel1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "07/01/2011"
oChart:AdjustLevelsToBase := .T.
oChart:SetProperty("PaneWidth",.F.,0)
oChart:LevelCount := 2
oLevel := oChart:Level(0)
oLevel:Alignment := 1/*CenterAlignment*/
oLevel:Label := "<b><%d%> - <%mmmm%> - <%yyyy%>"
oLevel:Unit := 4096/*exDay*/
oLevel1 := oChart:Level(1)
oLevel1:Label := "<%h%>"
oLevel1:Count := 8
oLevel1:Unit := 65536/*exHour*/
oLevel1:SetProperty("ReplaceLabel",Transform(0,"")," Shift 1")
oLevel1:SetProperty("ReplaceLabel",Transform(8,"")," Shift 2")
oLevel1:SetProperty("ReplaceLabel",Transform(16,"")," Shift 3")
oChart:UnitWidth := 48
oChart:NonworkingDays := 0
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1341
|
The exbartootip shows dates after you moved or resized the bar. My question is during the move or resizing of bar(you click on bar and drag it,during that time) , can we display the new dates simultaneously so we will know where we want to move or resize the bar to

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,64)
oChart:FirstVisibleDate := "01/01/2001"
oChart:DrawDateTicker := .T.
oChart:DateTickerLabel := "<%mmm%> <%d%><br><b><%yyyy%>"
oItems := oG2antt:Items()
h := oItems:AddItem("Tasks A")
oItems:AddBar(h,"Task","01/02/2001","01/04/2001","K1")
oItems:AddBar(h,"Task","01/05/2001","01/09/2001","K2")
oItems:SetProperty("SelectableItem",oItems:AddItem(),.F.)
h := oItems:AddItem("Tasks B")
oItems:AddBar(h,"Task","01/03/2001","01/05/2001","K1")
oItems:AddBar(h,"Task","01/08/2001","01/11/2001","K2")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1340
|
Is it possible to assign a tooltip automatically to all bars, so it can display the start and end, without specifying the IexBarToolTip for each bar
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,64)
oChart:FirstVisibleDate := "01/01/2001"
oChart:Bars:Item("Task"):SetProperty("Def",6/*exBarToolTip*/,"<b><%=%9 + '/' + %C0%></b><br><upline><dotline>Start: <%=%1%><br>End: <%=%2%><br>Duration: <%=(%2-%1)%><br>Working: <%=%258%>")
oItems := oG2antt:Items()
h := oItems:AddItem("Tasks A")
oItems:AddBar(h,"Task","01/02/2001","01/04/2001","K1")
oItems:AddBar(h,"Task","01/05/2001","01/09/2001","K2")
h := oItems:AddItem("Tasks B")
oItems:AddBar(h,"Task","01/03/2001","01/05/2001","K1")
oItems:AddBar(h,"Task","01/08/2001","01/11/2001","K2")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1339
|
How can I change the color, font, bold etc for the items/cells in the same column or for the entire column
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oConditionalFormat
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oConditionalFormat := oG2antt:ConditionalFormats():Add("1")
oConditionalFormat:Bold := .T.
oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oConditionalFormat:ApplyTo := 1/*0x1+*/
oG2antt:Columns():Add("C1")
oColumn := oG2antt:Columns():Add("C2")
oColumn:HeaderBold := .T.
oColumn:HTMLCaption := "<fgcolor=FF0000>C2"
oItems := oG2antt:Items()
oItems:SetProperty("CellValue",oItems:AddItem(10),1,11)
oItems:SetProperty("CellValue",oItems:AddItem(12),1,13)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1338
|
How can I remove a date-time zone

PROCEDURE OnClick(oG2antt)
oG2antt:Chart():RemoveTimeZone("Z1")
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:Click := {|| OnClick(oG2antt)} /*Occurs when the user presses and then releases the left mouse button over the tree control.*/
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,18)
oChart:LevelCount := 2
oChart:FirstVisibleDate := "01/01/2010"
oChart:MarkTimeZone("Z1","01/04/2010","01/08/2010",16744544)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1337
|
How can I filter the check-boxes (method 2)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oEditor
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oColumn := oG2antt:Columns():Add("Check")
oEditor := oColumn:Editor()
oEditor:EditType := 19/*CheckValueType*/
oEditor:SetProperty("Option",17/*exCheckValue2*/,1)
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:CustomFilter := "checked||-1|||unchecked||0"
oItems := oG2antt:Items()
oItems:AddItem(.T.)
oItems:AddItem(.T.)
oItems:AddItem(.F.)
oItems:AddItem(.T.)
oItems:AddItem(.F.)
oItems:AddItem(.T.)
oItems:AddItem(.F.)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1336
|
How can I filter the check-boxes (method 1)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oEditor
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oColumn := oG2antt:Columns():Add("Check")
oEditor := oColumn:Editor()
oEditor:EditType := 19/*CheckValueType*/
oEditor:SetProperty("Option",17/*exCheckValue2*/,1)
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterType := 6/*exCheck*/
oItems := oG2antt:Items()
oItems:AddItem(.T.)
oItems:AddItem(.T.)
oItems:AddItem(.F.)
oItems:AddItem(.T.)
oItems:AddItem(.F.)
oItems:AddItem(.T.)
oItems:AddItem(.F.)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1335
|
How can add a button to control

PROCEDURE OnButtonClick(oG2antt, Item, ColIndex, Key)
DevOut( "ButtonClick" )
DevOut( oG2antt:Items:CellCaption(Item,ColIndex) )
DevOut( Transform(Key,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn,oColumn1
LOCAL oColumns
LOCAL oEditor,oEditor1
LOCAL oItems
LOCAL h,s
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:ButtonClick := {|Item, ColIndex, Key| OnButtonClick(oG2antt, Item, ColIndex, Key)} /*Occurs when user clicks on the cell's button.*/
oG2antt:BeginUpdate()
oG2antt:DefaultItemHeight := 22
oG2antt:HeaderHeight := 22
oG2antt:Appearance := 0/*None2*/
oG2antt:DrawGridLines := -2/*exRowLines*/
oG2antt:ScrollBySingleLine := .F.
oG2antt:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oG2antt:SetProperty("HTMLPicture","pic1","c:\exontrol\images\auction.gif")
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oColumns := oG2antt:Columns()
oColumn := oColumns:Add("Type")
oColumn:Width := 48
oColumn:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn1 := oColumns:Add("Appearance")
oColumn1:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn1:Alignment := 1/*CenterAlignment*/
oColumn1:HeaderAlignment := 1/*CenterAlignment*/
oItems := oG2antt:Items()
h := oItems:AddItem("Items.<b>CellHasButton</b> property")
oItems:SetProperty("CellValue",h,1,"Button <b>1</b>")
oItems:SetProperty("CellHasButton",h,1,.T.)
h := oItems:AddItem("Items.<b>CellButtonAutoWidth</b> property")
oItems:SetProperty("CellValue",h,1," Button <b>2</b> ")
oItems:SetProperty("CellHasButton",h,1,.T.)
oItems:SetProperty("CellButtonAutoWidth",h,1,.T.)
h := oItems:AddItem("Items.<b>CellHasButton</b> property")
oItems:SetProperty("CellValue",h,1," <img>2</img>Button <b>3</b> ")
oItems:SetProperty("CellHasButton",h,1,.T.)
oItems:SetProperty("CellButtonAutoWidth",h,1,.T.)
h := oItems:AddItem("Items.<b>CellHasButton</b> property")
oItems:SetProperty("ItemHeight",h,32)
oItems:SetProperty("CellValue",h,1," <img>2</img>Button <b>4</b> <img>pic1</img> ")
oItems:SetProperty("CellHasButton",h,1,.T.)
oItems:SetProperty("CellButtonAutoWidth",h,1,.T.)
h := oItems:AddItem("Items.<b>CellHasButton</b> in splitted cells")
oItems:SetProperty("CellValue",h,1," Button <b>5.1</b> ")
oItems:SetProperty("CellHasButton",h,1,.T.)
oItems:SetProperty("CellButtonAutoWidth",h,1,.T.)
s := oItems:SplitCell(h,1)
oItems:SetProperty("CellValue",0,s," Button <b>5.2</b> ")
oItems:SetProperty("CellHasButton",0,s,.T.)
oItems:SetProperty("CellButtonAutoWidth",0,s,.T.)
h := oItems:AddItem("Column.<b>Editor</b>, Items.<b>CellEditor</b>")
oItems:SetProperty("CellValue",h,1,"Visible when clicking the cell")
oEditor := oItems:CellEditor(h,1)
oEditor:EditType := 1/*EditType*/
oEditor:AddButton("B1",1,0,"This is a bit of text that's shown when the cursor hovers the button B1")
oEditor:AddButton("B3",2,1,"This is a bit of text that's shown when the cursor hovers the button B3")
oEditor:AddButton("B4",1,1,"This is a bit of text that's shown when the cursor hovers the button B4")
oEditor:ButtonWidth := 24
h := oItems:AddItem("Column.<b>Editor</b>, Items.<b>CellEditor</b>")
oItems:SetProperty("CellValue",h,1,3)
oEditor1 := oItems:CellEditor(h,1)
oEditor1:EditType := 6/*CheckListType*/
oEditor1:AddItem(1,"Flag 1")
oEditor1:AddItem(2,"Flag 2")
oEditor1:AddItem(4,"Flag 4")
oEditor1:AddItem(8,"Flag 8")
oEditor1:AddButton("C1",1,0,"This is a bit of text that's shown when the cursor hovers the button C1")
oEditor1:AddButton("C3",2,0,"This is a bit of text that's shown when the cursor hovers the button C2")
oEditor1:AddButton("C4",1,0,"This is a bit of text that's shown when the cursor hovers the button C3")
oEditor1:ButtonWidth := 24
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1334
|
Is it posible to store additional values against each item, cell, bar, link, such as custom values such string / numbers etc
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oChart := oG2antt:Chart()
oChart:LevelCount := 2
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,96)
oG2antt:Columns():Add("Column"):Data := "Extra_Data_Column"
oItems := oG2antt:Items()
h := oItems:AddItem("Item 1")
oItems:SetProperty("ItemData",h,"Extra_Data_Item 1")
oItems:SetProperty("CellData",h,0,"Extra_Data_Item 1_Cell_0")
oItems:AddBar(h,"Task","01/02/2001","01/04/2001","B1")
oItems:SetProperty("ItemBar",h,"B1",17/*exBarData*/,"Extra_B1_Data")
h := oItems:AddItem("Item 2")
oItems:SetProperty("ItemData",h,"Extra_Data_Item 2")
oItems:AddBar(h,"Task","01/06/2001","01/10/2001","B2")
oItems:SetProperty("ItemBar",h,"B2",17/*exBarData*/,"Extra_B2_Data")
oItems:AddLink("L1",oItems:FindItem("Item 1",0),"B1",oItems:FindItem("Item 2",0),"B2")
oItems:SetProperty("Link","L1",5/*exLinkUserData*/,"Extra_Link_Data")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1333
|
How do I set the parent item to show the total number of days for its children and also the minimum and maximum dates for its children

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oColumns
LOCAL oItems
LOCAL h,h1,h2,h3
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:MarkSearchColumn := .F.
oG2antt:Indent := 11
oG2antt:HasLines := 1/*exSolidLine*/
oG2antt:Items():AllowCellValueToItemBar := .T.
oColumns := oG2antt:Columns()
oColumns:Add("Tasks")
oColumns:Add("Start"):SetProperty("Def",18/*exCellValueToItemBarProperty*/,1)
oColumns:Add("End"):SetProperty("Def",18/*exCellValueToItemBarProperty*/,2)
oColumns:Add("Duration"):SetProperty("Def",18/*exCellValueToItemBarProperty*/,513)
oChart := oG2antt:Chart()
oChart:ShowNonworkingDates := .F.
oChart:FirstVisibleDate := "09/20/2006"
oChart:AllowLinkBars := .F.
oChart:AllowCreateBar := 0/*exNoCreateBar*/
oChart:LevelCount := 2
oChart:SetProperty("PaneWidth",.F.,220)
oItems := oG2antt:Items()
h := oItems:AddItem("Project")
oItems:AddBar(h,"Summary","09/21/2006","10/03/2006")
h1 := oItems:InsertItem(h,,"Task 1")
oItems:AddBar(h1,"Task","09/21/2006","09/24/2006")
h2 := oItems:InsertItem(h,,"Task 2")
oItems:AddBar(h2,"Task","09/24/2006","09/28/2006")
h3 := oItems:InsertItem(h,,"Task 3")
oItems:AddBar(h3,"Task","09/28/2006","10/03/2006")
oItems:DefineSummaryBars(h,"",h1,"")
oItems:DefineSummaryBars(h,"",h2,"")
oItems:DefineSummaryBars(h,"",h3,"")
oItems:SetProperty("ExpandItem",h,.T.)
oItems:SetProperty("ItemBold",h,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1332
|
Is it possible to specify the distance between 2 bars to be at least 2 working days

PROCEDURE OnBarResizing(oG2antt, Item, Key)
oG2antt:Items():SchedulePDM(Item,Key)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oBar
LOCAL oChart
LOCAL oItems
LOCAL h1,h2,h3
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BarResizing := {|Item, Key| OnBarResizing(oG2antt, Item, Key)} /*Occurs when a bar is moving or resizing.*/
oG2antt:BeginUpdate()
oG2antt:DefaultItemHeight := 24
oG2antt:AntiAliasing := .T.
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:LevelCount := 2
oBar := oChart:Bars():Add("Task:Split")
oBar:Shortcut := "Task"
oBar:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oBar:Height := 17
oBar:Pattern := 8192/*exPatternFrameShadow*/
oChart:FirstVisibleDate := "01/03/2001"
oChart:SetProperty("PaneWidth",.F.,48)
oChart:LinksWidth := 2
oChart:AllowCreateBar := 0/*exNoCreateBar*/
oChart:AllowLinkBars := .F.
oChart:FirstWeekDay := 1/*exMonday*/
oChart:NonworkingDaysPattern := 6/*exPatternBDiagonal*/
oItems := oG2antt:Items()
h1 := oItems:AddItem("Task 1")
oItems:AddBar(h1,"Task","01/04/2001","01/06/2001","K1")
oItems:SetProperty("ItemBar",h1,"K1",20/*exBarKeepWorkingCount*/,.T.)
h2 := oItems:AddItem("Task 2")
oItems:AddBar(h2,"Task","01/02/2001","01/05/2001","K2")
oItems:SetProperty("ItemBar",h2,"K2",20/*exBarKeepWorkingCount*/,.T.)
oItems:AddLink("L1",h1,"K1",h2,"K2")
oItems:SetProperty("Link","L1",15/*exLinkShowRound*/,-1)
oItems:SetProperty("Link","L1",8/*exLinkColor*/,8421504)
h3 := oItems:AddItem("Task 3")
oItems:AddBar(h3,"Task","01/02/2001","01/06/2001","K3")
oItems:SetProperty("ItemBar",h3,"K3",20/*exBarKeepWorkingCount*/,.T.)
oItems:AddLink("L2",h2,"K2",h3,"K3")
oItems:SetProperty("Link","L2",12/*exLinkText*/,"<br><br><br><br>This link <u>delays</u> the bars<br>with <b>2</b> working days")
oItems:SetProperty("Link","L2",16/*exLinkPDMWorkingDelay*/,2)
oItems:SetProperty("Link","L2",15/*exLinkShowRound*/,-1)
oItems:SchedulePDM(0,"K1")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1331
|
The item is not getting selected when clicking the cell's checkbox. What should I do
PROCEDURE OnCellStateChanged(oG2antt, Item, ColIndex)
oG2antt:Items():SetProperty("SelectItem",Item,.T.)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:CellStateChanged := {|Item, ColIndex| OnCellStateChanged(oG2antt, Item, ColIndex)} /*Fired after cell's state has been changed.*/
oG2antt:Columns():Add("Check"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oItems := oG2antt:Items()
oItems:AddItem(0)
oItems:AddItem(1)
oItems:AddItem(2)
oItems:AddItem(3)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1330
|
How can I add a summary item as a child or subitem of another one

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL hChild,hSummary
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:SetProperty("PaneWidth",.F.,96)
oChart:FirstVisibleDate := "01/01/2011"
oChart:LevelCount := 2
oG2antt:Columns():Add("Default")
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oItems := oG2antt:Items()
hSummary := oItems:AddItem("Project")
oItems:AddBar(hSummary,"Summary","01/01/2011","01/01/2011","Sum")
hChild := oItems:InsertItem(hSummary,0,"Task 1")
oItems:AddBar(hChild,"Task","01/02/2011","01/04/2011","Task1")
oItems:DefineSummaryBars(hSummary,"Sum",hChild,"Task1")
hChild := oItems:InsertItem(hSummary,0,"Task 2")
oItems:AddBar(hChild,"Task","01/04/2011","01/06/2011","Task2")
oItems:DefineSummaryBars(hSummary,"Sum",hChild,"Task2")
hChild := oItems:InsertItem(hSummary,0,"Task 3")
oItems:AddBar(hChild,"Task","01/06/2011","01/08/2011","Task3")
oItems:DefineSummaryBars(hSummary,"Sum",hChild,"Task3")
oItems:SetProperty("ExpandItem",hSummary,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1329
|
How can I make an item a subitem of another one
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
LOCAL hChild,hSummary
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:Columns():Add("Default")
oItems := oG2antt:Items()
hSummary := oItems:AddItem("Project")
hChild := oItems:InsertItem(hSummary,0,"Task 1")
hChild := oItems:InsertItem(hSummary,0,"Task 2")
hChild := oItems:InsertItem(hSummary,0,"Task 3")
oItems:SetProperty("ExpandItem",hSummary,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1328
|
Is it possible to move a bar per drag and drop to another owner/item
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Members"):SetProperty("Def",17/*exCellValueFormat*/,1)
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "09/20/2006"
oChart:AllowLinkBars := .F.
oChart:AllowCreateBar := 0/*exNoCreateBar*/
oChart:AllowSelectObjects := 0/*exNoSelectObjects*/
oChart:LevelCount := 2
oChart:SetProperty("PaneWidth",.F.,96)
oChart:Bars:Item("Task"):OverlaidType := 4611/*exOverlaidBarsIncludeCaption+exOverlaidBarsStackAutoArrange+exOverlaidBarsStack*/
oItems := oG2antt:Items()
h := oItems:AddItem("Member <b>1</b>")
oItems:AddBar(h,"Task","09/21/2006","09/23/2006","T102","Task <b>102</b>")
oItems:SetProperty("ItemBar",h,"T102",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"T102",28/*exBarCanMoveToAnother*/,.T.)
h := oItems:AddItem("Member <b>2</b>")
h := oItems:AddItem("Member <b>3</b>")
h := oItems:AddItem("Member <b>4</b>")
oItems:AddBar(h,"Task","09/21/2006","09/23/2006","T103","Task <b>103</b>")
oItems:SetProperty("ItemBar",h,"T103",4/*exBarHAlignCaption*/,18)
oItems:SetProperty("ItemBar",h,"T103",28/*exBarCanMoveToAnother*/,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1327
|
I have the chart displaying days, is it possible to display bars/tasks up to hours so inside days somehow
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oChart := oG2antt:Chart()
oChart:LevelCount := 2
oChart:UnitWidth := 38
oChart:SetProperty("PaneWidth",.F.,28)
oChart:FirstVisibleDate := "03/04/2011"
oChart:UnitScale := 4096/*exDay*/
oChart:ResizeUnitScale := 65536/*exHour*/
oG2antt:Columns():Add("Default")
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("ASS"),"Task","03/07/2011","03/07/2011 03:30:00")
oItems:AddBar(oItems:AddItem("EMB"),"Task","03/07/2011 03:30:00","03/08/2011 09:15:00")
oItems:AddBar(oItems:AddItem("TES"),"Task","03/08/2011 09:15:00","03/08/2011 13:45:00")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1326
|
Is it possible to limit the height of the item while resizing
PROCEDURE OnAddItem(oG2antt, Item)
oG2antt:Items():SetProperty("ItemMinHeight",Item,18)
oG2antt:Items():SetProperty("ItemMaxHeight",Item,72)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:AddItem := {|Item| OnAddItem(oG2antt, Item)} /*Occurs after a new Item has been inserted to Items collection.*/
oG2antt:BeginUpdate()
oG2antt:ItemsAllowSizing := -1/*exResizeItem*/
oG2antt:ScrollBySingleLine := .F.
oG2antt:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oG2antt:Columns():Add("Names")
oItems := oG2antt:Items()
oItems:AddItem("Mantel")
oItems:AddItem("Mechanik")
oItems:AddItem("Motor")
oItems:AddItem("Murks")
oItems:AddItem("Märchen")
oItems:AddItem("Möhren")
oItems:AddItem("Mühle")
oG2antt:Columns:Item(0):SortOrder := 1/*SortAscending*/
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1325
|
Is it possible to copy the hierarchy of the control using the GetItems method
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oG2antt:Columns():Add("Def")
oItems := oG2antt:Items()
h := oItems:AddItem("Root")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:PutItems(oG2antt:GetItems(-1))
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1324
|
I have found a property ReadOnly but this doesn't work correctly. I need the chart part of the control to be readonly too. Is it possible
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:ReadOnly := -1/*exReadOnly*/
oChart := oG2antt:Chart()
oChart:AllowCreateBar := 0/*exNoCreateBar*/
oChart:BarsAllowSizing := .F.
oChart:AllowLinkBars := .F.
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1323
|
How can I select a column
PROCEDURE OnMouseDown(oG2antt, Button, Shift, X, Y)
oG2antt:BeginUpdate()
oG2antt:Columns():Item(oG2antt:ColumnFromPoint(X,Y)):Selected := .T.
oG2antt:Items():SelectAll()
oG2antt:EndUpdate()
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumns
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:MouseDown := {|Button, Shift, X, Y| OnMouseDown(oG2antt, Button, Shift, X, Y)} /*Occurs when the user presses a mouse button.*/
oG2antt:BeginUpdate()
oG2antt:MarkSearchColumn := .F.
oG2antt:SingleSel := .F.
oG2antt:FullRowSelect := 1/*exRectSel*/
oG2antt:SortOnClick := 0/*exNoSort*/
oColumns := oG2antt:Columns()
oColumns:Add("Column1")
oColumns:Add("Column2")
oItems := oG2antt:Items()
oItems:SetProperty("CellValue",oItems:AddItem("One"),1,"One")
oItems:SetProperty("CellValue",oItems:AddItem("Two"),1,"Two")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1322
|
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Item")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:Filter := "Child 1"
oColumn:FilterType := 240/*exFilter*/
oColumn1 := oG2antt:Columns():Add("Date")
oColumn1:DisplayFilterButton := .T.
oColumn1:DisplayFilterPattern := .F.
oColumn1:DisplayFilterDate := .T.
oColumn1:FilterList := 9474/*exShowExclude+exShowFocusItem+exShowCheckBox+exNoItems*/
oColumn1:Filter := Transform("12/28/2010","")
oColumn1:FilterType := 4/*exDate*/
oG2antt:FilterCriteria := "%0 or %1"
oG2antt:SetProperty("Description",23/*exFilterBarOr*/,"<font ;18><fgcolor=FF0000>or</fgcolor></font>")
oG2antt:SetProperty("Description",11/*exFilterBarAnd*/,"<font ;18><fgcolor=FF0000>and</fgcolor></font>")
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:SetProperty("CellValue",oItems:InsertItem(h,,"Child 1"),1,"12/27/2010")
oItems:SetProperty("CellValue",oItems:InsertItem(h,,"Child 2"),1,"12/28/2010")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:SetProperty("CellValue",oItems:InsertItem(h,,"Child 1"),1,"12/29/2010")
oItems:SetProperty("CellValue",oItems:InsertItem(h,,"Child 2"),1,"12/30/2010")
oG2antt:ApplyFilter()
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1321
|
Is it possible exclude the dates being selected in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oColumn := oG2antt:Columns():Add("Date")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 9474/*exShowExclude+exShowFocusItem+exShowCheckBox+exNoItems*/
oItems := oG2antt:Items()
oItems:AddItem("12/27/2010")
oItems:AddItem("12/28/2010")
oItems:AddItem("12/29/2010")
oItems:AddItem("12/30/2010")
oItems:AddItem("12/31/2010")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1320
|
How can I display a calendar control inside the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oColumn := oG2antt:Columns():Add("Date")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1282/*exShowFocusItem+exShowCheckBox+exNoItems*/
oItems := oG2antt:Items()
oItems:AddItem("12/27/2010")
oItems:AddItem("12/28/2010")
oItems:AddItem("12/29/2010")
oItems:AddItem("12/30/2010")
oItems:AddItem("12/31/2010")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1319
|
Is it possible to include the dates as checkb-boxes in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oColumn := oG2antt:Columns():Add("Dates")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1280/*exShowFocusItem+exShowCheckBox*/
oColumn:Filter := "to 12/27/2010"
oColumn:FilterType := 4/*exDate*/
oItems := oG2antt:Items()
oItems:AddItem("12/27/2010")
oItems:AddItem("12/28/2010")
oItems:AddItem("12/29/2010")
oItems:AddItem("12/30/2010")
oItems:AddItem("12/31/2010")
oG2antt:ApplyFilter()
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1318
|
How can I filter items for dates before a specified date
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oColumn := oG2antt:Columns():Add("Dates")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1026/*exShowFocusItem+exNoItems*/
oColumn:Filter := "to 12/27/2010"
oColumn:FilterType := 4/*exDate*/
oItems := oG2antt:Items()
oItems:AddItem("12/27/2010")
oItems:AddItem("12/28/2010")
oItems:AddItem("12/29/2010")
oItems:AddItem("12/30/2010")
oItems:AddItem("12/31/2010")
oG2antt:ApplyFilter()
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1317
|
Is it possible to filter dates
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oColumn := oG2antt:Columns():Add("Dates")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1026/*exShowFocusItem+exNoItems*/
oItems := oG2antt:Items()
oItems:AddItem("12/27/2010")
oItems:AddItem("12/28/2010")
oItems:AddItem("12/29/2010")
oItems:AddItem("12/30/2010")
oItems:AddItem("12/31/2010")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1316
|
Is it possible to change the Exclude field name to something different, in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oG2antt:SetProperty("Description",25/*exFilterBarExclude*/,"Leaving out")
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1315
|
How can I display the Exclude field in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1314
|
Is it possible to show and ensure the focused item from the control, in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 1280/*exShowFocusItem+exShowCheckBox*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:SetProperty("SelectItem",oItems:InsertItem(h,,"Child 2"),.T.)
oItems:SetProperty("ExpandItem",h,.T.)
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1313
|
Is it possible to show only blanks items with no listed items from the control
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 16386/*exShowBlanks+exNoItems*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1312
|
How can I include the blanks items in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 16640/*exShowBlanks+exShowCheckBox*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1311
|
How can I select multiple items in the drop down filter window, using check-boxes
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 256/*exShowCheckBox*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1310
|
Is it possible to allow a single item being selected in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 128/*exSingleSel*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1309
|
How can I display no (All) item in the drop down filter window
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oG2antt:SetProperty("Description",0/*exFilterBarAll*/,"")
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:FilterList := 2/*exNoItems*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1308
|
Is it possible to display no items in the drop down filter window, so only the pattern is visible
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:FilterList := 2/*exNoItems*/
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1307
|
How can I specify the time-scale available when zoom-in/zoom-out or enlarging the chart
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,48)
oChart:ShowNonworkingDates := .F.
oChart:LevelCount := 3
oChart:UnitScale := 4096/*exDay*/
oChart:AllowResizeChart := 262/*exAllowChangeUnitScale+exAllowResizeChartMiddle+exAllowResizeChartHeader*/
oChart:SetProperty("Label",65536/*exHour*/,"")
oChart:SetProperty("Label",1048576/*exMinute*/,"")
oChart:SetProperty("Label",16777216/*exSecond*/,"")
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task A"),"Task","01/02/2001","01/06/2001","K1")
oItems:AddBar(oItems:AddItem("Task B"),"Task","01/06/2001","01/10/2001","K1")
oItems:AddBar(oItems:AddItem("Task C"),"Task","01/10/2001","01/14/2001","K1")
oItems:AddBar(oItems:AddItem(""),"","01/08/2001","01/08/2001","Info","Click the <b>middle</b> mouse button and start dragging")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1306
|
How can I enable zoom-in/zoom-out or enlarging the chart, using the mouse middle button
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,48)
oChart:ShowNonworkingDates := .F.
oChart:LevelCount := 3
oChart:UnitScale := 4096/*exDay*/
oChart:AllowResizeChart := 262/*exAllowChangeUnitScale+exAllowResizeChartMiddle+exAllowResizeChartHeader*/
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task A"),"Task","01/02/2001","01/06/2001","K1")
oItems:AddBar(oItems:AddItem("Task B"),"Task","01/06/2001","01/10/2001","K1")
oItems:AddBar(oItems:AddItem("Task C"),"Task","01/10/2001","01/14/2001","K1")
oItems:AddBar(oItems:AddItem(""),"","01/08/2001","01/08/2001","Info","Click the <b>middle</b> mouse button and start dragging")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1305
|
How can I enable zoom-in/zoom-out or enlarging, using the chart's header

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,48)
oChart:ShowNonworkingDates := .F.
oChart:LevelCount := 3
oChart:UnitScale := 4096/*exDay*/
oChart:AllowResizeChart := 258/*exAllowChangeUnitScale+exAllowResizeChartHeader*/
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task A"),"Task","01/02/2001","01/06/2001","K1")
oItems:AddBar(oItems:AddItem("Task B"),"Task","01/06/2001","01/10/2001","K1")
oItems:AddBar(oItems:AddItem("Task C"),"Task","01/10/2001","01/14/2001","K1")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1304
|
How can I enable resizing the chart, using the mouse middle button
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,48)
oChart:ShowNonworkingDates := .F.
oChart:LevelCount := 3
oChart:UnitScale := 4096/*exDay*/
oChart:AllowResizeChart := 6/*exAllowResizeChartMiddle+exAllowResizeChartHeader*/
oChart:MaxUnitWidth := 128
oChart:MinUnitWidth := 8
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task A"),"Task","01/02/2001","01/06/2001","K1")
oItems:AddBar(oItems:AddItem("Task B"),"Task","01/06/2001","01/10/2001","K1")
oItems:AddBar(oItems:AddItem("Task C"),"Task","01/10/2001","01/14/2001","K1")
oItems:AddBar(oItems:AddItem(""),"","01/08/2001","01/08/2001","Info","Click the <b>middle</b> mouse button and start dragging")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1303
|
How can I enable resizing the chart, using the chart's header
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oChart
LOCAL oItems
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Columns():Add("Task")
oChart := oG2antt:Chart()
oChart:FirstVisibleDate := "01/01/2001"
oChart:SetProperty("PaneWidth",.F.,48)
oChart:ShowNonworkingDates := .F.
oChart:LevelCount := 3
oChart:UnitScale := 4096/*exDay*/
oChart:AllowResizeChart := 2/*exAllowResizeChartHeader*/
oChart:MaxUnitWidth := 128
oChart:MinUnitWidth := 8
oItems := oG2antt:Items()
oItems:AddBar(oItems:AddItem("Task A"),"Task","01/02/2001","01/06/2001","K1")
oItems:AddBar(oItems:AddItem("Task B"),"Task","01/06/2001","01/10/2001","K1")
oItems:AddBar(oItems:AddItem("Task C"),"Task","01/10/2001","01/14/2001","K1")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1302
|
Is it possible to auto-numbering the children items but still keeps the position after filtering

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5,oColumn6
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oG2antt:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:FilterType := 240/*exFilter*/
oColumn:Filter := "Child 2"
oColumn1 := oG2antt:Columns():Add("Pos.1")
oColumn1:FormatColumn := "1 ropos ''"
oColumn1:Position := 0
oColumn1:Width := 32
oColumn1:AllowSizing := .F.
oColumn2 := oG2antt:Columns():Add("Pos.2")
oColumn2:FormatColumn := "1 ropos ':'"
oColumn2:Position := 1
oColumn2:Width := 32
oColumn2:AllowSizing := .F.
oColumn3 := oG2antt:Columns():Add("Pos.3")
oColumn3:FormatColumn := "1 ropos ':|A-Z'"
oColumn3:Position := 2
oColumn3:Width := 32
oColumn3:AllowSizing := .F.
oColumn4 := oG2antt:Columns():Add("Pos.4")
oColumn4:FormatColumn := "1 ropos '|A-Z|'"
oColumn4:Position := 3
oColumn4:Width := 32
oColumn4:AllowSizing := .F.
oColumn5 := oG2antt:Columns():Add("Pos.5")
oColumn5:FormatColumn := "'<font Tahoma;7>' + 1 ropos '-<b>||A-Z'"
oColumn5:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn5:Position := 4
oColumn5:Width := 32
oColumn5:AllowSizing := .F.
oColumn6 := oG2antt:Columns():Add("Pos.6")
oColumn6:FormatColumn := "'<b>'+ 1 ropos '</b>:<fgcolor=FF0000>|A-Z|'"
oColumn6:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn6:Position := 5
oColumn6:Width := 48
oColumn6:AllowSizing := .F.
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:ApplyFilter()
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
|
1301
|
Is it possible to auto-numbering the children items too

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oG2antt
LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5
LOCAL oItems
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oG2antt := XbpActiveXControl():new( oForm:drawingArea )
oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/
oG2antt:create(,, {10,60},{610,370} )
oG2antt:BeginUpdate()
oG2antt:Chart():SetProperty("PaneWidth",.T.,0)
oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/
oG2antt:Columns():Add("Items")
oColumn := oG2antt:Columns():Add("Pos.1")
oColumn:FormatColumn := "1 rpos ''"
oColumn:Position := 0
oColumn:Width := 32
oColumn:AllowSizing := .F.
oColumn1 := oG2antt:Columns():Add("Pos.2")
oColumn1:FormatColumn := "1 rpos ':'"
oColumn1:Position := 1
oColumn1:Width := 32
oColumn1:AllowSizing := .F.
oColumn2 := oG2antt:Columns():Add("Pos.3")
oColumn2:FormatColumn := "1 rpos ':|A-Z'"
oColumn2:Position := 2
oColumn2:Width := 32
oColumn2:AllowSizing := .F.
oColumn3 := oG2antt:Columns():Add("Pos.4")
oColumn3:FormatColumn := "1 rpos '|A-Z|'"
oColumn3:Position := 3
oColumn3:Width := 32
oColumn3:AllowSizing := .F.
oColumn4 := oG2antt:Columns():Add("Pos.5")
oColumn4:FormatColumn := "'<font Tahoma;7>' + 1 rpos '-<b>||A-Z'"
oColumn4:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn4:Position := 4
oColumn4:Width := 32
oColumn4:AllowSizing := .F.
oColumn5 := oG2antt:Columns():Add("Pos.6")
oColumn5:FormatColumn := "'<b>'+ 1 rpos '</b>:<fgcolor=FF0000>|A-Z|'"
oColumn5:SetProperty("Def",17/*exCellValueFormat*/,1)
oColumn5:Position := 5
oColumn5:Width := 48
oColumn5:AllowSizing := .F.
oItems := oG2antt:Items()
h := oItems:AddItem("Root 1")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
h := oItems:AddItem("Root 2")
oItems:InsertItem(h,,"Child 1")
oItems:InsertItem(h,,"Child 2")
oG2antt:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|